mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-09-06 09:54:49 +00:00
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118356 91177308-0d34-0410-b5e6-96231b3b80d8
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
|
|
}
|
|
|