1/* { dg-do compile } */ 2/* { dg-options "-O2 -msse2 -march=k8" } */ 3/* { dg-require-effective-target sse2 } */ 4/* { dg-final { scan-assembler "andps" } } */ 5/* { dg-final { scan-assembler "andnps" } } */ 6/* { dg-final { scan-assembler "xorps" } } */ 7/* { dg-final { scan-assembler "orps" } } */ 8 9/* Verify that we generate proper instruction without memory operand. */ 10 11#include <xmmintrin.h> 12__m128 13t1(__m128 a, __m128 b) 14{ 15a=_mm_sqrt_ps(a); 16b=_mm_sqrt_ps(b); 17return _mm_and_ps (a,b); 18} 19__m128 20t2(__m128 a, __m128 b) 21{ 22a=_mm_sqrt_ps(a); 23b=_mm_sqrt_ps(b); 24return _mm_andnot_ps (a,b); 25} 26__m128 27t3(__m128 a, __m128 b) 28{ 29a=_mm_sqrt_ps(a); 30b=_mm_sqrt_ps(b); 31return _mm_or_ps (a,b); 32} 33__m128 34t4(__m128 a, __m128 b) 35{ 36a=_mm_sqrt_ps(a); 37b=_mm_sqrt_ps(b); 38return _mm_xor_ps (a,b); 39} 40