mirror of
https://github.com/intel/llvm.git
synced 2026-01-19 09:31:59 +08:00
Patch to fix a crash in the PowerPC back end due to ISD::ROTL and ISD::ROTR
not being expanded. Test case included. llvm-svn: 254501
This commit is contained in:
@@ -479,6 +479,8 @@ PPCTargetLowering::PPCTargetLowering(const PPCTargetMachine &TM,
|
||||
setOperationAction(ISD::CTTZ_ZERO_UNDEF, VT, Expand);
|
||||
setOperationAction(ISD::VSELECT, VT, Expand);
|
||||
setOperationAction(ISD::SIGN_EXTEND_INREG, VT, Expand);
|
||||
setOperationAction(ISD::ROTL, VT, Expand);
|
||||
setOperationAction(ISD::ROTR, VT, Expand);
|
||||
|
||||
for (MVT InnerVT : MVT::vector_valuetypes()) {
|
||||
setTruncStoreAction(VT, InnerVT, Expand);
|
||||
|
||||
12
llvm/test/CodeGen/PowerPC/rotl-rotr-crash.ll
Normal file
12
llvm/test/CodeGen/PowerPC/rotl-rotr-crash.ll
Normal file
@@ -0,0 +1,12 @@
|
||||
; RUN: llc < %s -mtriple=powerpc64le-unknown-unknown -mcpu=pwr8
|
||||
|
||||
; Ensure this does not crash
|
||||
|
||||
; Function Attrs: norecurse nounwind
|
||||
define <4 x i32> @func1 (<4 x i32> %a) {
|
||||
entry:
|
||||
%0 = lshr <4 x i32> %a, <i32 16, i32 16, i32 16, i32 16>
|
||||
%1 = shl <4 x i32> %a, <i32 16, i32 16, i32 16, i32 16>
|
||||
%2 = or <4 x i32> %1, %0
|
||||
ret <4 x i32> %2
|
||||
}
|
||||
Reference in New Issue
Block a user