1/* { dg-do compile } */ 2/* This test checks for absolute memory operands. */ 3/* { dg-require-effective-target nonpic } */ 4/* { dg-require-effective-target sse2 } */ 5/* { dg-options "-O2 -msse2 -march=k8" } */ 6/* { dg-final { scan-assembler "andpd\[^\\n\]*magic" } } */ 7/* { dg-final { scan-assembler "andnpd\[^\\n\]*magic" } } */ 8/* { dg-final { scan-assembler "xorpd\[^\\n\]*magic" } } */ 9/* { dg-final { scan-assembler "orpd\[^\\n\]*magic" } } */ 10/* { dg-final { scan-assembler-not "movdqa" } } */ 11/* { dg-final { scan-assembler "movapd\[^\\n\]*magic" } } */ 12 13/* Verify that we generate proper instruction with memory operand. */ 14 15#include <xmmintrin.h> 16 17static __m128d magic_a, magic_b; 18 19__m128d 20t1(void) 21{ 22return _mm_and_pd (magic_a,magic_b); 23} 24__m128d 25t2(void) 26{ 27return _mm_andnot_pd (magic_a,magic_b); 28} 29__m128d 30t3(void) 31{ 32return _mm_or_pd (magic_a,magic_b); 33} 34__m128d 35t4(void) 36{ 37return _mm_xor_pd (magic_a,magic_b); 38} 39