mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-09-10 22:55:57 +00:00
foldMemoryOperand how to "fold" them, by converting them into constant-pool loads. When they aren't folded, they use xorps/cmpeqd, but for example when register pressure is high, they may now be folded as memory operands, which reduces register pressure. Also, mark V_SET0 isAsCheapAsAMove so that two-address-elimination will remat it instead of copying zeros around (V_SETALLONES was already marked). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60461 91177308-0d34-0410-b5e6-96231b3b80d8
12 lines
361 B
LLVM
12 lines
361 B
LLVM
; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 > %t
|
|
; RUN: grep pcmpeqd %t | count 1
|
|
; RUN: grep xor %t | count 1
|
|
; RUN: not grep LCP %t
|
|
|
|
define <2 x double> @foo() nounwind {
|
|
ret <2 x double> bitcast (<2 x i64><i64 -1, i64 -1> to <2 x double>)
|
|
}
|
|
define <2 x double> @bar() nounwind {
|
|
ret <2 x double> bitcast (<2 x i64><i64 0, i64 0> to <2 x double>)
|
|
}
|