diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/CodeGen/X86/fsxor-alignment.ll | 14 | ||||
-rw-r--r-- | test/CodeGen/X86/vec_shuffle.ll | 2 |
2 files changed, 15 insertions, 1 deletions
diff --git a/test/CodeGen/X86/fsxor-alignment.ll b/test/CodeGen/X86/fsxor-alignment.ll new file mode 100644 index 0000000000..bb55e4466f --- /dev/null +++ b/test/CodeGen/X86/fsxor-alignment.ll @@ -0,0 +1,14 @@ +; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse -enable-unsafe-fp-math | \ +; RUN: grep -v sp | grep xorps | wc -l | grep 2 + +; Don't fold the incoming stack arguments into the xorps instructions used +; to do floating-point negations, because the arguments aren't vectors +; and aren't vector-aligned. + +define void @foo(float* %p, float* %q, float %s, float %y) { + %ss = sub float -0.0, %s + %yy = sub float -0.0, %y + store float %ss, float* %p + store float %yy, float* %q + ret void +} diff --git a/test/CodeGen/X86/vec_shuffle.ll b/test/CodeGen/X86/vec_shuffle.ll index d06efa5ff2..16ce3dac54 100644 --- a/test/CodeGen/X86/vec_shuffle.ll +++ b/test/CodeGen/X86/vec_shuffle.ll @@ -1,6 +1,6 @@ ; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 -mattr=+sse2 -o %t -f ; RUN: grep shufp %t | wc -l | grep 1 -; RUN: grep movups %t | wc -l | grep 1 +; RUN: grep movupd %t | wc -l | grep 1 ; RUN: grep pshufhw %t | wc -l | grep 1 void %test_v4sf(<4 x float>* %P, float %X, float %Y) { |