Files
archived-llvm/test/CodeGen/SystemZ/vec-rem.ll
Jonas Paulsson 71efe3e09f [SystemZ] Bugfix in SystemZTargetLowering::combineIntDIVREM()
Make sure to not unroll a vector division/remainder (with a constant splat
divisor) after type legalization, since the scalar type may then be illegal.

Review: Ulrich Weigand
https://reviews.llvm.org/D62036

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360965 91177308-0d34-0410-b5e6-96231b3b80d8
2019-05-17 00:50:35 +00:00

14 lines
766 B
LLVM

; Verify that we do not create illegal scalar urems after type legalization.
;
; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13
define <16 x i8> @main(i16 %arg) {
bb:
%tmp6 = insertelement <16 x i16> undef, i16 %arg, i32 0
%tmp7 = shufflevector <16 x i16> %tmp6, <16 x i16> undef, <16 x i32> zeroinitializer
%tmp8 = insertelement <16 x i8> <i8 undef, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>, i8 undef, i32 0
%tmp11 = urem <16 x i16> %tmp7, <i16 29265, i16 29265, i16 29265, i16 29265, i16 29265, i16 29265, i16 29265, i16 29265, i16 29265, i16 29265, i16 29265, i16 29265, i16 29265, i16 29265, i16 29265, i16 29265>
%tmp12 = trunc <16 x i16> %tmp11 to <16 x i8>
ret <16 x i8> %tmp12
}