mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-10 13:51:37 +00:00
AMDGPU/GlobalISel: Fix crash in regbankselect on non-power-of-2 types
Reviewers: arsenm Reviewed By: arsenm Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, rovka, kristof.beyls, dstuttard, tpr, llvm-commits, t-tye Differential Revision: https://reviews.llvm.org/D49624 llvm-svn: 338102
This commit is contained in:
parent
adea1de7ba
commit
26bab840b4
@ -96,7 +96,7 @@ const RegisterBankInfo::ValueMapping *getValueMapping(unsigned BankID,
|
||||
break;
|
||||
default:
|
||||
Idx = BankID == AMDGPU::VGPRRegBankID ? VGPRStartIdx : SGPRStartIdx;
|
||||
Idx += llvm::countTrailingZeros(Size);
|
||||
Idx += Log2_32_Ceil(Size);
|
||||
break;
|
||||
}
|
||||
return &ValMappings[Idx];
|
||||
|
@ -14,6 +14,7 @@
|
||||
%tmp2 = load i32, i32 addrspace(1)* %tmp1
|
||||
ret void
|
||||
}
|
||||
define void @non_power_of_2() { ret void }
|
||||
declare i32 @llvm.amdgcn.workitem.id.x() #0
|
||||
attributes #0 = { nounwind readnone }
|
||||
...
|
||||
@ -67,3 +68,19 @@ body: |
|
||||
%0:_(p1) = COPY $sgpr0_sgpr1
|
||||
%1:_(s32) = G_LOAD %0 :: (load 4 from %ir.tmp1)
|
||||
...
|
||||
|
||||
---
|
||||
name: non_power_of_2
|
||||
legalized: true
|
||||
|
||||
# CHECK-LABEL: name: non_power_of_2
|
||||
# CHECK: [[S448:%[0-9]+]]:sgpr(s448) = G_IMPLICIT_DEF
|
||||
# CHECK: sgpr(s32) = G_EXTRACT [[S448]](s448), 0
|
||||
|
||||
body: |
|
||||
bb.0:
|
||||
%0:_(s448) = G_IMPLICIT_DEF
|
||||
%1:_(s32) = G_EXTRACT %0:_(s448), 0
|
||||
$sgpr0 = COPY %1:_(s32)
|
||||
SI_RETURN_TO_EPILOG $sgpr0
|
||||
...
|
||||
|
Loading…
Reference in New Issue
Block a user