@@ -1772,27 +1772,42 @@ ArrayRef<int16_t> SIRegisterInfo::getRegSplitParts(const TargetRegisterClass *RC
1772
1772
}
1773
1773
}
1774
1774
1775
- assert (EltSize == 32 && " unhandled elt size" );
1775
+ if (EltSize == 32 ) {
1776
+ static const int16_t Sub0_31_256[] = {
1777
+ AMDGPU::sub0_sub1_sub2_sub3_sub4_sub5_sub6_sub7,
1778
+ AMDGPU::sub8_sub9_sub10_sub11_sub12_sub13_sub14_sub15,
1779
+ AMDGPU::sub16_sub17_sub18_sub19_sub20_sub21_sub22_sub23,
1780
+ AMDGPU::sub24_sub25_sub26_sub27_sub28_sub29_sub30_sub31
1781
+ };
1776
1782
1777
- static const int16_t Sub0_31_256[] = {
1778
- AMDGPU::sub0_sub1_sub2_sub3_sub4_sub5_sub6_sub7,
1779
- AMDGPU::sub8_sub9_sub10_sub11_sub12_sub13_sub14_sub15,
1780
- AMDGPU::sub16_sub17_sub18_sub19_sub20_sub21_sub22_sub23,
1781
- AMDGPU::sub24_sub25_sub26_sub27_sub28_sub29_sub30_sub31
1782
- };
1783
+ static const int16_t Sub0_15_256[] = {
1784
+ AMDGPU::sub0_sub1_sub2_sub3_sub4_sub5_sub6_sub7,
1785
+ AMDGPU::sub8_sub9_sub10_sub11_sub12_sub13_sub14_sub15
1786
+ };
1787
+
1788
+ switch (AMDGPU::getRegBitWidth (*RC->MC )) {
1789
+ case 256 :
1790
+ return {};
1791
+ case 512 :
1792
+ return makeArrayRef (Sub0_15_256);
1793
+ case 1024 :
1794
+ return makeArrayRef (Sub0_31_256);
1795
+ default :
1796
+ llvm_unreachable (" unhandled register size" );
1797
+ }
1798
+ }
1783
1799
1784
- static const int16_t Sub0_15_256[] = {
1785
- AMDGPU::sub0_sub1_sub2_sub3_sub4_sub5_sub6_sub7,
1786
- AMDGPU::sub8_sub9_sub10_sub11_sub12_sub13_sub14_sub15
1800
+ assert (EltSize == 64 && " unhandled elt size" );
1801
+ static const int16_t Sub0_31_512[] = {
1802
+ AMDGPU::sub0_sub1_sub2_sub3_sub4_sub5_sub6_sub7_sub8_sub9_sub10_sub11_sub12_sub13_sub14_sub15,
1803
+ AMDGPU::sub16_sub17_sub18_sub19_sub20_sub21_sub22_sub23_sub24_sub25_sub26_sub27_sub28_sub29_sub30_sub31
1787
1804
};
1788
1805
1789
1806
switch (AMDGPU::getRegBitWidth (*RC->MC )) {
1790
- case 256 :
1791
- return {};
1792
1807
case 512 :
1793
- return makeArrayRef (Sub0_15_256) ;
1808
+ return {} ;
1794
1809
case 1024 :
1795
- return makeArrayRef (Sub0_31_256 );
1810
+ return makeArrayRef (Sub0_31_512 );
1796
1811
default :
1797
1812
llvm_unreachable (" unhandled register size" );
1798
1813
}
0 commit comments