mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-01 00:12:50 +01:00
0d6d870628
exposed: GAS doesn't accept "fcomip %st(1)", it requires "fcomip %st(1), %st(0)" even though st(0) is implicit in all other fp stack instructions. Fortunately, there is an alias for fcomip named "fcompi" and gas does accept the default argument for the alias (boggle!). As such, switch the canonical form of this instruction to "pi" instead of "ip". This makes the code generator and disassembler generate pi, avoiding the gas bug. llvm-svn: 118356
12 lines
463 B
LLVM
12 lines
463 B
LLVM
; RUN: llc < %s -march=x86 -mcpu=i386 | grep {fucompi.*st.\[12\]}
|
|
; PR1012
|
|
|
|
define float @foo(float* %col.2.0) {
|
|
%tmp = load float* %col.2.0 ; <float> [#uses=3]
|
|
%tmp16 = fcmp olt float %tmp, 0.000000e+00 ; <i1> [#uses=1]
|
|
%tmp20 = fsub float -0.000000e+00, %tmp ; <float> [#uses=1]
|
|
%iftmp.2.0 = select i1 %tmp16, float %tmp20, float %tmp ; <float> [#uses=1]
|
|
ret float %iftmp.2.0
|
|
}
|
|
|