Bug#891802: llvm-6.0: LLVM ERROR: Cannot select: 0x582f0b00: f32 = X86ISD::FNMSUB 0x582f8740, 0x583805f0, 0x582fde50
Andreas Beckmann
anbe at debian.org
Wed Feb 28 23:01:05 UTC 2018
Package: llvm-6.0
Version: 1:6.0~+rc3-1
Severity: important
Hi,
this is a regression from llvm-5.0 to llvm-6.0 on i386.
I'm attaching two .bc files from a pocl selftest, one generated with
llvm-5.0, one with llvm-6.0.
llc-5.0 successfully compiles both, llc-6.0 fails to compile both:
$ llc-5.0 -O2 -mcpu=i686 pocl.trig.llvm5.bc
$ llc-5.0 -O2 -mcpu=i686 pocl.trig.llvm6.bc
$ llc-6.0 -O2 -mcpu=i686 pocl.trig.llvm5.bc
LLVM ERROR: Cannot select: 0x582f0b00: f32 = X86ISD::FNMSUB 0x582f8740, 0x583805f0, 0x582fde50
0x582f8740: f32 = fsub 0x58314d20, 0x58329d00
0x58314d20: f32,ch = load<LD4[FixedStack0(align=16)+12](align=4)> 0x583150e0, 0x58322db0, undef:i32
0x58322db0: i32 = or FrameIndex:i32<0>, Constant:i32<12>
0x5837f620: i32 = FrameIndex<0>
0x582c0e40: i32 = Constant<12>
0x58326f60: i32 = undef
0x58329d00: f32,ch = load<LD4[FixedStack1]> 0x58329c80, FrameIndex:i32<1>, undef:i32
0x582f8180: i32 = FrameIndex<1>
0x58326f60: i32 = undef
0x583805f0: f32,ch = load<LD4[ConstantPool]> 0x58223a80, 0x58318150, undef:i32
0x58318150: i32 = X86ISD::Wrapper TargetConstantPool:i32<float 0x3C23100000000000> 0
0x582bbbe0: i32 = TargetConstantPool<float 0x3C23100000000000> 0
0x58326f60: i32 = undef
0x582fde50: f32,ch,glue = CopyFromReg 0x5831d6a0, Register:f32 %fp0, 0x5831d6a0:1
0x58309fe0: f32 = Register %fp0
0x5831d6a0: ch,glue = callseq_end 0x58320a90, TargetConstant:i32<12>, TargetConstant:i32<0>, 0x58320a90:1
0x58315ef0: i32 = TargetConstant<12>
0x5837f5e0: i32 = TargetConstant<0>
0x58320a90: ch,glue = X86ISD::CALL 0x583189d0, TargetExternalSymbol:i32'fmaf', RegisterMask:Untyped
0x582eff80: i32 = TargetExternalSymbol'fmaf'
0x58327420: Untyped = RegisterMask
In function: _Z20__pocl_argReductionSPDv4_fS0_S_
$ llc-6.0 -O2 -mcpu=i686 pocl.trig.llvm6.bc
LLVM ERROR: Cannot select: 0x575fb6e0: f32 = X86ISD::FNMSUB 0x575c98d0, 0x575aad80, 0x575c82f0
0x575c98d0: f32 = fsub 0x575aa740, 0x575754a0
0x575aa740: f32,ch = load<LD4[FixedStack0(align=16)+12](align=4)> 0x575a8b60, 0x5753a900, undef:i32
0x5753a900: i32 = or FrameIndex:i32<0>, Constant:i32<12>
0x575a89e0: i32 = FrameIndex<0>
0x575b58b0: i32 = Constant<12>
0x575aa280: i32 = undef
0x575754a0: f32,ch = load<LD4[FixedStack1]> 0x575a8620, FrameIndex:i32<1>, undef:i32
0x575b2d00: i32 = FrameIndex<1>
0x575aa280: i32 = undef
0x575aad80: f32,ch = load<LD4[ConstantPool]> 0x574a1260, 0x57588590, undef:i32
0x57588590: i32 = X86ISD::Wrapper TargetConstantPool:i32<float 0x3C23100000000000> 0
0x575ca110: i32 = TargetConstantPool<float 0x3C23100000000000> 0
0x575aa280: i32 = undef
0x575c82f0: f32,ch,glue = CopyFromReg 0x575aa100, Register:f32 %fp0, 0x575aa100:1
0x575a3c20: f32 = Register %fp0
0x575aa100: ch,glue = callseq_end 0x57580000, TargetConstant:i32<12>, TargetConstant:i32<0>, 0x57580000:1
0x5758fdd0: i32 = TargetConstant<12>
0x575a17f0: i32 = TargetConstant<0>
0x57580000: ch,glue = X86ISD::CALL 0x575b2030, TargetExternalSymbol:i32'fmaf', RegisterMask:Untyped
0x575a8460: i32 = TargetExternalSymbol'fmaf'
0x575c7cf0: Untyped = RegisterMask
In function: _Z20__pocl_argReductionSPU9CLprivateDv4_fS1_S_
Andreas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pocl.trig.llvm5.bc.gz
Type: application/gzip
Size: 32139 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-llvm-team/attachments/20180301/17c869af/attachment-0002.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pocl.trig.llvm6.bc.gz
Type: application/gzip
Size: 32204 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-llvm-team/attachments/20180301/17c869af/attachment-0003.bin>
More information about the Pkg-llvm-team
mailing list