http://llvm.org/bugs/show_bug.cgi?id=20396
Bug ID: 20396
Summary: [AArch64] Build improper vector filled with undef when
constant folding vselect.
Product: new-bugs
Version: trunk
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P
Component: new bugs
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected]
Classification: Unclassified
Testcase:
$cat test.ll
define <8 x i16> @test() {
entry:
%mul.i = select <8 x i1> <i1 true, i1 false, i1 false, i1 true, i1 true, i1
false, i1 false, i1 true>, <8 x i16> <i16 0, i16 undef, i16 undef, i16 0, i16
0, i16 undef, i16 undef, i16 0>, <8 x i16> zeroinitializer
%add.i = add <8 x i16> %mul.i, <i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16
1, i16 1>
ret <8 x i16> %add.i
}
Output:
$llc -mtriple=aarch64 <test.ll
LLVM ERROR: Cannot select: 0x4d423f8: v8i16 = BUILD_VECTOR 0x4d44de8,
0x4d44ce0, 0x4d44ce0, 0x4d44de8, 0x4d44de8, 0x4d44ce0, 0x4d44ce0, 0x4d44de8
[ORD=2] [ID=10]
0x4d44de8: i32 = Constant<0> [ID=4]
0x4d44ce0: i32 = undef [ID=3]
0x4d44ce0: i32 = undef [ID=3]
0x4d44de8: i32 = Constant<0> [ID=4]
0x4d44de8: i32 = Constant<0> [ID=4]
0x4d44ce0: i32 = undef [ID=3]
0x4d44ce0: i32 = undef [ID=3]
0x4d44de8: i32 = Constant<0> [ID=4]
It seems that it's caused by the bug in DAGcombiner when doing constant fold on
expanded vselect.
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs