[llvm-bugs] [Bug 34576] New: [X86] Bug in shuffle-to-zero-extend transformation
via llvm-bugs
llvm-bugs at lists.llvm.org
Tue Sep 12 06:37:46 PDT 2017
https://bugs.llvm.org/show_bug.cgi?id=34576
Bug ID: 34576
Summary: [X86] Bug in shuffle-to-zero-extend transformation
Product: libraries
Version: trunk
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: P
Component: Backend: X86
Assignee: unassignedbugs at nondot.org
Reporter: ayman.musa at intel.com
CC: llvm-bugs at lists.llvm.org
X86ISD::VZEXT node is defined to work on integer types only.
In the following IR code:
define internal fastcc <4 x float> @test(<4 x float> %inp) #0 {
entry:
%shuf = shufflevector <4 x float> %inp, <4 x float> zeroinitializer, <4 x
i32> <i32 0, i32 undef, i32 2, i32 4>
ret <4 x float> %shuf
}
the input for the shufflevector instruction should be bitcasted to integer type
before feeding it to zero-extend.
> ../../build/bin/llc -mattr=+avx2 test.ll -o test.s
LLVM ERROR: Cannot select: t502: v4i64 = X86ISD::VZEXT t501
t501: v4f32 = bitcast t500
t500: v2f64 = extract_subvector t466, Constant:i64<0>
t466: v4f64 = X86ISD::VPERMI t428, Constant:i8<-58>
t428: v4f64 = bitcast t433
t433: v8f32 = X86ISD::VPERMILPI t27, Constant:i8<108>
t27: v8f32,ch = load<LD32[FixedStack-5]> t0, FrameIndex:i64<-5>,
undef:i64
t26: i64 = FrameIndex<-5>
t18: i64 = undef
t432: i8 = Constant<108>
t465: i8 = Constant<-58>
t411: i64 = Constant<0>
In function: test
--
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/20170912/94617e9f/attachment-0001.html>
More information about the llvm-bugs
mailing list