[LLVMbugs] [Bug 22955] New: LLVM ERROR: Cannot select fault on trunk
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Thu Mar 19 05:19:39 PDT 2015
https://llvm.org/bugs/show_bug.cgi?id=22955
Bug ID: 22955
Summary: LLVM ERROR: Cannot select fault on trunk
Product: tools
Version: trunk
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P
Component: llc
Assignee: unassignedbugs at nondot.org
Reporter: anton.mitrokhin at phystech.edu
CC: llvmbugs at cs.uiuc.edu
Classification: Unclassified
Reproducer:
idiv.ll:
target datalayout = "e-m:e-p:32:32-f64:32:64-f80:32-n8:16:32-S1
target triple = "i386-unknown-linux-gnu"
define void @f_f(float* noalias nocapture %RET, float %aFOO, i3
allocas:
%__idiv_table_u32_offset10_offset_load.i = add i64 0, -2
br label %if_then18.i
if_then18.i:
%aFOO_load_to_uint32 = fptoui float %aFOO to i32
%aFOO_load_to_uint32_broadcast_init = insertelement <8 x i32>
%aFOO_load_to_uint32_broadcast = shufflevector <8 x i32> %aFO
%multiplier_load_broadcast_init.i = insertelement <8 x i64> u
%multiplier_load_broadcast.i = shufflevector <8 x i64> %multi
%numerator_load_to_uint64.i = zext <8 x i32> %aFOO_load_to_ui
;if replace '%__idiv_table_u32_offset10_offset_load.i' with '
%add__shift_load21.i = add i64 %__idiv_table_u32_offset10_off
%add__shift_load21_broadcast_init.i = insertelement <8 x i64>
%add__shift_load21_broadcast.i = shufflevector <8 x i64> %add
%mul_val_load_mult_load.i = mul <8 x i64> %numerator_load_to_
%bitop22.i = lshr <8 x i64> %mul_val_load_mult_load.i, %add__
%bitop22_to_uint32.i = trunc <8 x i64> %bitop22.i to <8 x i32
br label %__fast_idiv___UM_vyuunu.exit
__fast_idiv___UM_vyuunu.exit:
%calltmp_to_float = uitofp <8 x i32> %bitop22_to_uint32.i to
%ptrcast = bitcast float* %RET to <8 x float>*
store <8 x float> %calltmp_to_float, <8 x float>* %ptrcast, a
ret void
}
attributes #0 = { nounwind }
!llvm.ident = !{!0}
!0 = !{!"clang version 3.7.0 (trunk 231404)"}
!1 = !{!"/tests/idiv"}
!2 = !{i32 6}
!3 = !{i32 4}
!4 = !{i32 21}
execute:
llc idiv.ll -o test.s --mattr='+avx2'
output:
LLVM ERROR: Cannot select: 0x24cae70: v4i64 = X86ISD::VSRL 0x24cdd70, 0x24d1060
[ORD=12] [ID=43]
0x24cdd70: v4i64 = add 0x24d05c0, 0x24d05c0 [ORD=11] [ID=39]
0x24d05c0: v4i64 = X86ISD::VZEXT 0x24ca3d0 [ORD=7] [ID=37]
0x24ca3d0: v4i32 = X86ISD::VBROADCAST 0x24ce0a0 [ORD=7] [ID=35]
0x24ce0a0: i32,ch = load 0x24d08f0, 0x24cd4f0,
0x24d0b10<LD4[FixedStack1](align=8)> [ORD=2] [ID=33]
0x24cd4f0: i32 = FrameIndex<1> [ID=15]
0x24d0b10: i32 = undef [ID=12]
0x24d05c0: v4i64 = X86ISD::VZEXT 0x24ca3d0 [ORD=7] [ID=37]
0x24ca3d0: v4i32 = X86ISD::VBROADCAST 0x24ce0a0 [ORD=7] [ID=35]
0x24ce0a0: i32,ch = load 0x24d08f0, 0x24cd4f0,
0x24d0b10<LD4[FixedStack1](align=8)> [ORD=2] [ID=33]
0x24cd4f0: i32 = FrameIndex<1> [ID=15]
0x24d0b10: i32 = undef [ID=12]
0x24d1060: v4i64 = bitcast 0x24d14a0 [ORD=10] [ID=42]
0x24d14a0: v8i32 = insert_subvector 0x24d1390, 0x24d1d00, 0x24ca5f0
[ORD=10] [ID=41]
0x24d1390: v8i32 = insert_subvector 0x24cdc60, 0x24d1d00, 0x24ca920
[ORD=10] [ID=40]
0x24cdc60: v8i32 = undef [ID=10]
0x24d1d00: v4i32 = insert_vector_elt 0x24d1ae0, 0x24d0f50, 0x24d1bf0
[ORD=10] [ID=38]
0x24d1ae0: v4i32 = insert_vector_elt 0x24cad60, 0x24ca700, 0x24d0e40
[ORD=10] [ID=36]
0x24cad60: v4i32 = insert_vector_elt 0x24d07e0, 0x24d0f50,
0x24d1280 [ORD=10] [ID=34]
0x24d07e0: v4i32 = scalar_to_vector 0x24ca700 [ORD=10] [ID=31]
0x24ca700: i32,i32 = X86ISD::ADD 0x24cd710, 0x24cab40 [ORD=8]
[ID=28]
0x24cd710: i32 = AssertSext 0x24ca2c0, 0x24cd930 [ORD=8]
[ID=24]
0x24cab40: i32 = Constant<32> [ID=7]
0x24d0f50: i32,i32 = X86ISD::ADC 0x24ca810, 0x24ca920,
0x24ca700:1 [ORD=8] [ID=32]
0x24ca810: i32 = AssertSext 0x24caf80, 0x24caa30 [ORD=8]
[ID=27]
0x24caf80: i32,ch = CopyFromReg 0x24ca2c0:1, 0x24cd600
[ORD=8] [ID=23]
0x24ca920: i32 = Constant<0> [ID=8]
0x24ca700: i32,i32 = X86ISD::ADD 0x24cd710, 0x24cab40 [ORD=8]
[ID=28]
0x24cd710: i32 = AssertSext 0x24ca2c0, 0x24cd930 [ORD=8]
[ID=24]
0x24cab40: i32 = Constant<32> [ID=7]
0x24d1280: i32 = Constant<1> [ID=16]
0x24ca700: i32,i32 = X86ISD::ADD 0x24cd710, 0x24cab40 [ORD=8]
[ID=28]
0x24cd710: i32 = AssertSext 0x24ca2c0, 0x24cd930 [ORD=8] [ID=24]
0x24ca2c0: i32,ch = CopyFromReg 0x2473ad0, 0x24ca4e0 [ORD=8]
[ID=20]
0x24ca4e0: i32 = Register %vreg0 [ID=2]
0x24cab40: i32 = Constant<32> [ID=7]
0x24d0e40: i32 = Constant<2> [ID=11]
0x24d0f50: i32,i32 = X86ISD::ADC 0x24ca810, 0x24ca920, 0x24ca700:1
[ORD=8] [ID=32]
0x24ca810: i32 = AssertSext 0x24caf80, 0x24caa30 [ORD=8] [ID=27]
0x24caf80: i32,ch = CopyFromReg 0x24ca2c0:1, 0x24cd600 [ORD=8]
[ID=23]
0x24cd600: i32 = Register %vreg1 [ID=4]
0x24ca920: i32 = Constant<0> [ID=8]
0x24ca700: i32,i32 = X86ISD::ADD 0x24cd710, 0x24cab40 [ORD=8]
[ID=28]
0x24cd710: i32 = AssertSext 0x24ca2c0, 0x24cd930 [ORD=8] [ID=24]
0x24ca2c0: i32,ch = CopyFromReg 0x2473ad0, 0x24ca4e0 [ORD=8]
[ID=20]
0x24ca4e0: i32 = Register %vreg0 [ID=2]
0x24cab40: i32 = Constant<32> [ID=7]
0x24d1bf0: i32 = Constant<3> [ID=17]
0x24ca920: i32 = Constant<0> [ID=8]
0x24d1d00: v4i32 = insert_vector_elt 0x24d1ae0, 0x24d0f50, 0x24d1bf0
[ORD=10] [ID=38]
0x24d1ae0: v4i32 = insert_vector_elt 0x24cad60, 0x24ca700, 0x24d0e40
[ORD=10] [ID=36]
0x24cad60: v4i32 = insert_vector_elt 0x24d07e0, 0x24d0f50, 0x24d1280
[ORD=10] [ID=34]
0x24d07e0: v4i32 = scalar_to_vector 0x24ca700 [ORD=10] [ID=31]
0x24ca700: i32,i32 = X86ISD::ADD 0x24cd710, 0x24cab40 [ORD=8]
[ID=28]
0x24cd710: i32 = AssertSext 0x24ca2c0, 0x24cd930 [ORD=8]
[ID=24]
0x24ca2c0: i32,ch = CopyFromReg 0x2473ad0, 0x24ca4e0 [ORD=8]
[ID=20]
0x24cab40: i32 = Constant<32> [ID=7]
0x24d0f50: i32,i32 = X86ISD::ADC 0x24ca810, 0x24ca920, 0x24ca700:1
[ORD=8] [ID=32]
0x24ca810: i32 = AssertSext 0x24caf80, 0x24caa30 [ORD=8] [ID=27]
0x24caf80: i32,ch = CopyFromReg 0x24ca2c0:1, 0x24cd600 [ORD=8]
[ID=23]
0x24cd600: i32 = Register %vreg1 [ID=4]
0x24ca920: i32 = Constant<0> [ID=8]
0x24ca700: i32,i32 = X86ISD::ADD 0x24cd710, 0x24cab40 [ORD=8]
[ID=28]
0x24cd710: i32 = AssertSext 0x24ca2c0, 0x24cd930 [ORD=8]
[ID=24]
0x24ca2c0: i32,ch = CopyFromReg 0x2473ad0, 0x24ca4e0 [ORD=8]
[ID=20]
0x24cab40: i32 = Constant<32> [ID=7]
0x24d1280: i32 = Constant<1> [ID=16]
0x24ca700: i32,i32 = X86ISD::ADD 0x24cd710, 0x24cab40 [ORD=8] [ID=28]
0x24cd710: i32 = AssertSext 0x24ca2c0, 0x24cd930 [ORD=8] [ID=24]
0x24ca2c0: i32,ch = CopyFromReg 0x2473ad0, 0x24ca4e0 [ORD=8]
[ID=20]
0x24ca4e0: i32 = Register %vreg0 [ID=2]
0x24cab40: i32 = Constant<32> [ID=7]
0x24d0e40: i32 = Constant<2> [ID=11]
0x24d0f50: i32,i32 = X86ISD::ADC 0x24ca810, 0x24ca920, 0x24ca700:1
[ORD=8] [ID=32]
0x24ca810: i32 = AssertSext 0x24caf80, 0x24caa30 [ORD=8] [ID=27]
0x24caf80: i32,ch = CopyFromReg 0x24ca2c0:1, 0x24cd600 [ORD=8]
[ID=23]
0x24cd600: i32 = Register %vreg1 [ID=4]
0x24ca920: i32 = Constant<0> [ID=8]
0x24ca700: i32,i32 = X86ISD::ADD 0x24cd710, 0x24cab40 [ORD=8] [ID=28]
0x24cd710: i32 = AssertSext 0x24ca2c0, 0x24cd930 [ORD=8] [ID=24]
0x24ca2c0: i32,ch = CopyFromReg 0x2473ad0, 0x24ca4e0 [ORD=8]
[ID=20]
0x24ca4e0: i32 = Register %vreg0 [ID=2]
0x24cab40: i32 = Constant<32> [ID=7]
0x24d1bf0: i32 = Constant<3> [ID=17]
0x24ca5f0: i32 = Constant<4> [ID=9]
In function: f_f
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20150319/28cd65d7/attachment.html>
More information about the llvm-bugs
mailing list