|
1 |
| -# RUN: llc -march=amdgcn -run-pass=instruction-select -verify-machineinstrs -global-isel %s -o - | FileCheck %s |
| 1 | +# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py |
| 2 | +# RUN: llc -march=amdgcn -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck %s |
2 | 3 | ---
|
3 | 4 | name: extract512
|
4 | 5 | legalized: true
|
5 | 6 | regBankSelected: true
|
6 | 7 |
|
7 |
| -# CHECK-LABEL: extract512 |
8 |
| -# CHECK: [[BASE:%[0-9]+]]:sreg_512 = IMPLICIT_DEF |
9 |
| -# CHECK: [[SGPR0:%[0-9]+]]:sreg_32_xm0 = COPY [[BASE]].sub0 |
10 |
| -# CHECK: [[SGPR1:%[0-9]+]]:sreg_32_xm0 = COPY [[BASE]].sub1 |
11 |
| -# CHECK: [[SGPR2:%[0-9]+]]:sreg_32_xm0 = COPY [[BASE]].sub2 |
12 |
| -# CHECK: [[SGPR3:%[0-9]+]]:sreg_32_xm0 = COPY [[BASE]].sub3 |
13 |
| -# CHECK: [[SGPR4:%[0-9]+]]:sreg_32_xm0 = COPY [[BASE]].sub4 |
14 |
| -# CHECK: [[SGPR5:%[0-9]+]]:sreg_32_xm0 = COPY [[BASE]].sub5 |
15 |
| -# CHECK: [[SGPR6:%[0-9]+]]:sreg_32_xm0 = COPY [[BASE]].sub6 |
16 |
| -# CHECK: [[SGPR7:%[0-9]+]]:sreg_32_xm0 = COPY [[BASE]].sub7 |
17 |
| -# CHECK: [[SGPR8:%[0-9]+]]:sreg_32_xm0 = COPY [[BASE]].sub8 |
18 |
| -# CHECK: [[SGPR9:%[0-9]+]]:sreg_32_xm0 = COPY [[BASE]].sub9 |
19 |
| -# CHECK: [[SGPR10:%[0-9]+]]:sreg_32_xm0 = COPY [[BASE]].sub10 |
20 |
| -# CHECK: [[SGPR11:%[0-9]+]]:sreg_32_xm0 = COPY [[BASE]].sub11 |
21 |
| -# CHECK: [[SGPR12:%[0-9]+]]:sreg_32_xm0 = COPY [[BASE]].sub12 |
22 |
| -# CHECK: [[SGPR13:%[0-9]+]]:sreg_32_xm0 = COPY [[BASE]].sub13 |
23 |
| -# CHECK: [[SGPR14:%[0-9]+]]:sreg_32_xm0 = COPY [[BASE]].sub14 |
24 |
| -# CHECK: [[SGPR15:%[0-9]+]]:sreg_32_xm0 = COPY [[BASE]].sub15 |
25 |
| -# CHECK: $sgpr0 = COPY [[SGPR0]] |
26 |
| -# CHECK: $sgpr1 = COPY [[SGPR1]] |
27 |
| -# CHECK: $sgpr2 = COPY [[SGPR2]] |
28 |
| -# CHECK: $sgpr3 = COPY [[SGPR3]] |
29 |
| -# CHECK: $sgpr4 = COPY [[SGPR4]] |
30 |
| -# CHECK: $sgpr5 = COPY [[SGPR5]] |
31 |
| -# CHECK: $sgpr6 = COPY [[SGPR6]] |
32 |
| -# CHECK: $sgpr7 = COPY [[SGPR7]] |
33 |
| -# CHECK: $sgpr8 = COPY [[SGPR8]] |
34 |
| -# CHECK: $sgpr9 = COPY [[SGPR9]] |
35 |
| -# CHECK: $sgpr10 = COPY [[SGPR10]] |
36 |
| -# CHECK: $sgpr11 = COPY [[SGPR11]] |
37 |
| -# CHECK: $sgpr12 = COPY [[SGPR12]] |
38 |
| -# CHECK: $sgpr13 = COPY [[SGPR13]] |
39 |
| -# CHECK: $sgpr14 = COPY [[SGPR14]] |
40 |
| -# CHECK: $sgpr15 = COPY [[SGPR15]] |
41 |
| - |
42 | 8 | body: |
|
43 | 9 | bb.0:
|
| 10 | + ; CHECK-LABEL: name: extract512 |
| 11 | + ; CHECK: [[DEF:%[0-9]+]]:sreg_512 = IMPLICIT_DEF |
| 12 | + ; CHECK: [[COPY:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub0 |
| 13 | + ; CHECK: [[COPY1:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub1 |
| 14 | + ; CHECK: [[COPY2:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub2 |
| 15 | + ; CHECK: [[COPY3:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub3 |
| 16 | + ; CHECK: [[COPY4:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub4 |
| 17 | + ; CHECK: [[COPY5:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub5 |
| 18 | + ; CHECK: [[COPY6:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub6 |
| 19 | + ; CHECK: [[COPY7:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub7 |
| 20 | + ; CHECK: [[COPY8:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub8 |
| 21 | + ; CHECK: [[COPY9:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub9 |
| 22 | + ; CHECK: [[COPY10:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub10 |
| 23 | + ; CHECK: [[COPY11:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub11 |
| 24 | + ; CHECK: [[COPY12:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub12 |
| 25 | + ; CHECK: [[COPY13:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub13 |
| 26 | + ; CHECK: [[COPY14:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub14 |
| 27 | + ; CHECK: [[COPY15:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub15 |
| 28 | + ; CHECK: $sgpr0 = COPY [[COPY]] |
| 29 | + ; CHECK: $sgpr1 = COPY [[COPY1]] |
| 30 | + ; CHECK: $sgpr2 = COPY [[COPY2]] |
| 31 | + ; CHECK: $sgpr3 = COPY [[COPY3]] |
| 32 | + ; CHECK: $sgpr4 = COPY [[COPY4]] |
| 33 | + ; CHECK: $sgpr5 = COPY [[COPY5]] |
| 34 | + ; CHECK: $sgpr6 = COPY [[COPY6]] |
| 35 | + ; CHECK: $sgpr7 = COPY [[COPY7]] |
| 36 | + ; CHECK: $sgpr8 = COPY [[COPY8]] |
| 37 | + ; CHECK: $sgpr9 = COPY [[COPY9]] |
| 38 | + ; CHECK: $sgpr10 = COPY [[COPY10]] |
| 39 | + ; CHECK: $sgpr11 = COPY [[COPY11]] |
| 40 | + ; CHECK: $sgpr12 = COPY [[COPY12]] |
| 41 | + ; CHECK: $sgpr13 = COPY [[COPY13]] |
| 42 | + ; CHECK: $sgpr14 = COPY [[COPY14]] |
| 43 | + ; CHECK: $sgpr15 = COPY [[COPY15]] |
| 44 | + ; CHECK: SI_RETURN_TO_EPILOG $sgpr0, $sgpr1, $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $sgpr14, $sgpr15 |
44 | 45 | %0:sgpr(s512) = G_IMPLICIT_DEF
|
45 | 46 | %1:sgpr(s32) = G_EXTRACT %0:sgpr(s512), 0
|
46 | 47 | %2:sgpr(s32) = G_EXTRACT %0:sgpr(s512), 32
|
@@ -75,3 +76,84 @@ body: |
|
75 | 76 | $sgpr14 = COPY %15:sgpr(s32)
|
76 | 77 | $sgpr15 = COPY %16:sgpr(s32)
|
77 | 78 | SI_RETURN_TO_EPILOG $sgpr0, $sgpr1, $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $sgpr14, $sgpr15
|
| 79 | +... |
| 80 | + |
| 81 | +--- |
| 82 | +name: extract_s_s32_s1024 |
| 83 | +legalized: true |
| 84 | +regBankSelected: true |
| 85 | + |
| 86 | +body: | |
| 87 | + bb.0: |
| 88 | + ; CHECK-LABEL: name: extract_s_s32_s1024 |
| 89 | + ; CHECK: [[DEF:%[0-9]+]]:sreg_1024 = IMPLICIT_DEF |
| 90 | + ; CHECK: [[COPY:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub0 |
| 91 | + ; CHECK: [[COPY1:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub1 |
| 92 | + ; CHECK: [[COPY2:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub2 |
| 93 | + ; CHECK: [[COPY3:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub3 |
| 94 | + ; CHECK: [[COPY4:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub4 |
| 95 | + ; CHECK: [[COPY5:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub5 |
| 96 | + ; CHECK: [[COPY6:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub6 |
| 97 | + ; CHECK: [[COPY7:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub7 |
| 98 | + ; CHECK: [[COPY8:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub8 |
| 99 | + ; CHECK: [[COPY9:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub9 |
| 100 | + ; CHECK: [[COPY10:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub10 |
| 101 | + ; CHECK: [[COPY11:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub11 |
| 102 | + ; CHECK: [[COPY12:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub12 |
| 103 | + ; CHECK: [[COPY13:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub13 |
| 104 | + ; CHECK: [[COPY14:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub14 |
| 105 | + ; CHECK: [[COPY15:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub15 |
| 106 | + ; CHECK: [[COPY16:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub16 |
| 107 | + ; CHECK: [[COPY17:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub17 |
| 108 | + ; CHECK: [[COPY18:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub18 |
| 109 | + ; CHECK: [[COPY19:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub19 |
| 110 | + ; CHECK: [[COPY20:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub20 |
| 111 | + ; CHECK: [[COPY21:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub21 |
| 112 | + ; CHECK: [[COPY22:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub22 |
| 113 | + ; CHECK: [[COPY23:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub23 |
| 114 | + ; CHECK: [[COPY24:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub24 |
| 115 | + ; CHECK: [[COPY25:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub25 |
| 116 | + ; CHECK: [[COPY26:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub26 |
| 117 | + ; CHECK: [[COPY27:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub27 |
| 118 | + ; CHECK: [[COPY28:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub28 |
| 119 | + ; CHECK: [[COPY29:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub29 |
| 120 | + ; CHECK: [[COPY30:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub30 |
| 121 | + ; CHECK: [[COPY31:%[0-9]+]]:sreg_32_xm0 = COPY [[DEF]].sub31 |
| 122 | + ; CHECK: S_ENDPGM 0, implicit [[DEF]], implicit [[COPY]], implicit [[COPY1]], implicit [[COPY2]], implicit [[COPY3]], implicit [[COPY4]], implicit [[COPY5]], implicit [[COPY6]], implicit [[COPY7]], implicit [[COPY8]], implicit [[COPY9]], implicit [[COPY10]], implicit [[COPY11]], implicit [[COPY12]], implicit [[COPY13]], implicit [[COPY14]], implicit [[COPY15]], implicit [[COPY16]], implicit [[COPY17]], implicit [[COPY18]], implicit [[COPY19]], implicit [[COPY20]], implicit [[COPY21]], implicit [[COPY22]], implicit [[COPY23]], implicit [[COPY24]], implicit [[COPY25]], implicit [[COPY26]], implicit [[COPY27]], implicit [[COPY28]], implicit [[COPY29]], implicit [[COPY30]], implicit [[COPY31]] |
| 123 | + %0:sgpr(s1024) = G_IMPLICIT_DEF |
| 124 | + %1:sgpr(s32) = G_EXTRACT %0:sgpr, 0 |
| 125 | + %2:sgpr(s32) = G_EXTRACT %0:sgpr, 32 |
| 126 | + %3:sgpr(s32) = G_EXTRACT %0:sgpr, 64 |
| 127 | + %4:sgpr(s32) = G_EXTRACT %0:sgpr, 96 |
| 128 | + %5:sgpr(s32) = G_EXTRACT %0:sgpr, 128 |
| 129 | + %6:sgpr(s32) = G_EXTRACT %0:sgpr, 160 |
| 130 | + %7:sgpr(s32) = G_EXTRACT %0:sgpr, 192 |
| 131 | + %8:sgpr(s32) = G_EXTRACT %0:sgpr, 224 |
| 132 | + %9:sgpr(s32) = G_EXTRACT %0:sgpr, 256 |
| 133 | + %10:sgpr(s32) = G_EXTRACT %0:sgpr, 288 |
| 134 | + %11:sgpr(s32) = G_EXTRACT %0:sgpr, 320 |
| 135 | + %12:sgpr(s32) = G_EXTRACT %0:sgpr, 352 |
| 136 | + %13:sgpr(s32) = G_EXTRACT %0:sgpr, 384 |
| 137 | + %14:sgpr(s32) = G_EXTRACT %0:sgpr, 416 |
| 138 | + %15:sgpr(s32) = G_EXTRACT %0:sgpr, 448 |
| 139 | + %16:sgpr(s32) = G_EXTRACT %0:sgpr, 480 |
| 140 | +
|
| 141 | + %17:sgpr(s32) = G_EXTRACT %0:sgpr, 512 |
| 142 | + %18:sgpr(s32) = G_EXTRACT %0:sgpr, 544 |
| 143 | + %19:sgpr(s32) = G_EXTRACT %0:sgpr, 576 |
| 144 | + %20:sgpr(s32) = G_EXTRACT %0:sgpr, 608 |
| 145 | + %21:sgpr(s32) = G_EXTRACT %0:sgpr, 640 |
| 146 | + %22:sgpr(s32) = G_EXTRACT %0:sgpr, 672 |
| 147 | + %23:sgpr(s32) = G_EXTRACT %0:sgpr, 704 |
| 148 | + %24:sgpr(s32) = G_EXTRACT %0:sgpr, 736 |
| 149 | + %25:sgpr(s32) = G_EXTRACT %0:sgpr, 768 |
| 150 | + %26:sgpr(s32) = G_EXTRACT %0:sgpr, 800 |
| 151 | + %27:sgpr(s32) = G_EXTRACT %0:sgpr, 832 |
| 152 | + %28:sgpr(s32) = G_EXTRACT %0:sgpr, 864 |
| 153 | + %29:sgpr(s32) = G_EXTRACT %0:sgpr, 896 |
| 154 | + %30:sgpr(s32) = G_EXTRACT %0:sgpr, 928 |
| 155 | + %31:sgpr(s32) = G_EXTRACT %0:sgpr, 960 |
| 156 | + %32:sgpr(s32) = G_EXTRACT %0:sgpr, 992 |
| 157 | +
|
| 158 | + S_ENDPGM 0, implicit %0, implicit %1, implicit %2, implicit %3, implicit %4, implicit %5, implicit %6, implicit %7, implicit %8, implicit %9, implicit %10, implicit %11, implicit %12, implicit %13, implicit %14, implicit %15, implicit %16, implicit %17, implicit %18, implicit %19, implicit %20, implicit %21, implicit %22, implicit %23, implicit %24, implicit %25, implicit %26, implicit %27, implicit %28, implicit %29, implicit %30, implicit %31, implicit %32 |
| 159 | +... |
0 commit comments