llvm-6502/test/CodeGen/X86/fsxor-alignment.ll
Dan Gohman d300622eba Re-apply 40504, but with a fix for the segfault it caused in oggenc:
Make the alignedload and alignedstore patterns always require 16-byte
alignment. This way when they are used in the "Fs" instructions, in which
a vector instruction is used for a scalar purpose, they can still require
the full vector alignment. And add a regression test for this.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40555 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-27 17:16:43 +00:00

15 lines
488 B
LLVM

; 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
}