mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 20:51:52 +01:00
[SystemZ] Add check VT.isSimple() in canTreateAsByteVector()
Since BB-vectorizer can produce vectors of for example 3 elements, this check is needed. Review: Ulrich Weigand llvm-svn: 297136
This commit is contained in:
parent
9e4b511e37
commit
2490763fc1
@ -4737,7 +4737,7 @@ const char *SystemZTargetLowering::getTargetNodeName(unsigned Opcode) const {
|
||||
// Return true if VT is a vector whose elements are a whole number of bytes
|
||||
// in width.
|
||||
static bool canTreatAsByteVector(EVT VT) {
|
||||
return VT.isVector() && VT.getScalarSizeInBits() % 8 == 0;
|
||||
return VT.isVector() && VT.getScalarSizeInBits() % 8 == 0 && VT.isSimple();
|
||||
}
|
||||
|
||||
// Try to simplify an EXTRACT_VECTOR_ELT from a vector of type VecVT
|
||||
|
10
test/CodeGen/SystemZ/vectorizer-output-3xi32.ll
Normal file
10
test/CodeGen/SystemZ/vectorizer-output-3xi32.ll
Normal file
@ -0,0 +1,10 @@
|
||||
; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13
|
||||
;
|
||||
; This tescase origininates from the BB-vectorizer output.
|
||||
|
||||
define void @fun() {
|
||||
%1 = zext <3 x i1> zeroinitializer to <3 x i32>
|
||||
%2 = extractelement <3 x i32> %1, i32 2
|
||||
store i32 %2, i32* undef, align 8
|
||||
unreachable
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user