1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -O0 -run-pass=legalizer -global-isel-abort=0 %s -o - | FileCheck -check-prefix=SI %s 3# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -O0 -run-pass=legalizer -global-isel-abort=0 %s -o - | FileCheck -check-prefix=VI %s 4# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx900 -O0 -run-pass=legalizer -global-isel-abort=0 %s -o - | FileCheck -check-prefix=GFX9 %s 5 6--- 7name: test_fshr_s32_s32 8body: | 9 bb.0: 10 liveins: $vgpr0, $vgpr1, $vgpr2 11 12 ; SI-LABEL: name: test_fshr_s32_s32 13 ; SI: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 14 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 15 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 16 ; SI: [[FSHR:%[0-9]+]]:_(s32) = G_FSHR [[COPY]], [[COPY1]], [[COPY2]](s32) 17 ; SI: $vgpr0 = COPY [[FSHR]](s32) 18 ; VI-LABEL: name: test_fshr_s32_s32 19 ; VI: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 20 ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 21 ; VI: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 22 ; VI: [[FSHR:%[0-9]+]]:_(s32) = G_FSHR [[COPY]], [[COPY1]], [[COPY2]](s32) 23 ; VI: $vgpr0 = COPY [[FSHR]](s32) 24 ; GFX9-LABEL: name: test_fshr_s32_s32 25 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 26 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 27 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 28 ; GFX9: [[FSHR:%[0-9]+]]:_(s32) = G_FSHR [[COPY]], [[COPY1]], [[COPY2]](s32) 29 ; GFX9: $vgpr0 = COPY [[FSHR]](s32) 30 %0:_(s32) = COPY $vgpr0 31 %1:_(s32) = COPY $vgpr1 32 %2:_(s32) = COPY $vgpr2 33 %3:_(s32) = G_FSHR %0, %1, %2 34 $vgpr0 = COPY %3 35... 36 37--- 38name: test_fshr_v2s32_v2s32 39body: | 40 bb.0: 41 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5 42 43 ; SI-LABEL: name: test_fshr_v2s32_v2s32 44 ; SI: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr1 45 ; SI: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr2_vgpr3 46 ; SI: [[COPY2:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr4_vgpr5 47 ; SI: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>) 48 ; SI: [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY1]](<2 x s32>) 49 ; SI: [[UV4:%[0-9]+]]:_(s32), [[UV5:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY2]](<2 x s32>) 50 ; SI: [[FSHR:%[0-9]+]]:_(s32) = G_FSHR [[UV]], [[UV2]], [[UV4]](s32) 51 ; SI: [[FSHR1:%[0-9]+]]:_(s32) = G_FSHR [[UV1]], [[UV3]], [[UV5]](s32) 52 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[FSHR]](s32), [[FSHR1]](s32) 53 ; SI: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>) 54 ; VI-LABEL: name: test_fshr_v2s32_v2s32 55 ; VI: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr1 56 ; VI: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr2_vgpr3 57 ; VI: [[COPY2:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr4_vgpr5 58 ; VI: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>) 59 ; VI: [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY1]](<2 x s32>) 60 ; VI: [[UV4:%[0-9]+]]:_(s32), [[UV5:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY2]](<2 x s32>) 61 ; VI: [[FSHR:%[0-9]+]]:_(s32) = G_FSHR [[UV]], [[UV2]], [[UV4]](s32) 62 ; VI: [[FSHR1:%[0-9]+]]:_(s32) = G_FSHR [[UV1]], [[UV3]], [[UV5]](s32) 63 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[FSHR]](s32), [[FSHR1]](s32) 64 ; VI: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>) 65 ; GFX9-LABEL: name: test_fshr_v2s32_v2s32 66 ; GFX9: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr1 67 ; GFX9: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr2_vgpr3 68 ; GFX9: [[COPY2:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr4_vgpr5 69 ; GFX9: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>) 70 ; GFX9: [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY1]](<2 x s32>) 71 ; GFX9: [[UV4:%[0-9]+]]:_(s32), [[UV5:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY2]](<2 x s32>) 72 ; GFX9: [[FSHR:%[0-9]+]]:_(s32) = G_FSHR [[UV]], [[UV2]], [[UV4]](s32) 73 ; GFX9: [[FSHR1:%[0-9]+]]:_(s32) = G_FSHR [[UV1]], [[UV3]], [[UV5]](s32) 74 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[FSHR]](s32), [[FSHR1]](s32) 75 ; GFX9: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>) 76 %0:_(<2 x s32>) = COPY $vgpr0_vgpr1 77 %1:_(<2 x s32>) = COPY $vgpr2_vgpr3 78 %2:_(<2 x s32>) = COPY $vgpr4_vgpr5 79 %3:_(<2 x s32>) = G_FSHR %0, %1, %2 80 $vgpr0_vgpr1 = COPY %3 81... 82 83--- 84name: test_fshr_s16_s16 85body: | 86 bb.0: 87 liveins: $vgpr0, $vgpr1, $vgpr2 88 89 ; SI-LABEL: name: test_fshr_s16_s16 90 ; SI: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 91 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 92 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 93 ; SI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32) 94 ; SI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY1]](s32) 95 ; SI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY2]](s32) 96 ; SI: [[FSHR:%[0-9]+]]:_(s16) = G_FSHR [[TRUNC]], [[TRUNC1]], [[TRUNC2]](s16) 97 ; SI: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[FSHR]](s16) 98 ; SI: $vgpr0 = COPY [[ANYEXT]](s32) 99 ; VI-LABEL: name: test_fshr_s16_s16 100 ; VI: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 101 ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 102 ; VI: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 103 ; VI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32) 104 ; VI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY1]](s32) 105 ; VI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY2]](s32) 106 ; VI: [[FSHR:%[0-9]+]]:_(s16) = G_FSHR [[TRUNC]], [[TRUNC1]], [[TRUNC2]](s16) 107 ; VI: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[FSHR]](s16) 108 ; VI: $vgpr0 = COPY [[ANYEXT]](s32) 109 ; GFX9-LABEL: name: test_fshr_s16_s16 110 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 111 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 112 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 113 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32) 114 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY1]](s32) 115 ; GFX9: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY2]](s32) 116 ; GFX9: [[FSHR:%[0-9]+]]:_(s16) = G_FSHR [[TRUNC]], [[TRUNC1]], [[TRUNC2]](s16) 117 ; GFX9: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[FSHR]](s16) 118 ; GFX9: $vgpr0 = COPY [[ANYEXT]](s32) 119 %0:_(s32) = COPY $vgpr0 120 %1:_(s32) = COPY $vgpr1 121 %2:_(s32) = COPY $vgpr2 122 %3:_(s16) = G_TRUNC %0 123 %4:_(s16) = G_TRUNC %1 124 %5:_(s16) = G_TRUNC %2 125 %6:_(s16) = G_FSHR %3, %4, %5 126 %7:_(s32) = G_ANYEXT %6 127 $vgpr0 = COPY %7 128... 129 130--- 131name: test_fshr_v2s16_v2s16 132body: | 133 bb.0: 134 liveins: $vgpr0, $vgpr1, $vgpr2 135 136 ; SI-LABEL: name: test_fshr_v2s16_v2s16 137 ; SI: [[COPY:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr0 138 ; SI: [[COPY1:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr1 139 ; SI: [[COPY2:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr2 140 ; SI: [[UV:%[0-9]+]]:_(s16), [[UV1:%[0-9]+]]:_(s16) = G_UNMERGE_VALUES [[COPY]](<2 x s16>) 141 ; SI: [[UV2:%[0-9]+]]:_(s16), [[UV3:%[0-9]+]]:_(s16) = G_UNMERGE_VALUES [[COPY1]](<2 x s16>) 142 ; SI: [[UV4:%[0-9]+]]:_(s16), [[UV5:%[0-9]+]]:_(s16) = G_UNMERGE_VALUES [[COPY2]](<2 x s16>) 143 ; SI: [[FSHR:%[0-9]+]]:_(s16) = G_FSHR [[UV]], [[UV2]], [[UV4]](s16) 144 ; SI: [[FSHR1:%[0-9]+]]:_(s16) = G_FSHR [[UV1]], [[UV3]], [[UV5]](s16) 145 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[FSHR]](s16), [[FSHR1]](s16) 146 ; SI: $vgpr0 = COPY [[BUILD_VECTOR]](<2 x s16>) 147 ; VI-LABEL: name: test_fshr_v2s16_v2s16 148 ; VI: [[COPY:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr0 149 ; VI: [[COPY1:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr1 150 ; VI: [[COPY2:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr2 151 ; VI: [[UV:%[0-9]+]]:_(s16), [[UV1:%[0-9]+]]:_(s16) = G_UNMERGE_VALUES [[COPY]](<2 x s16>) 152 ; VI: [[UV2:%[0-9]+]]:_(s16), [[UV3:%[0-9]+]]:_(s16) = G_UNMERGE_VALUES [[COPY1]](<2 x s16>) 153 ; VI: [[UV4:%[0-9]+]]:_(s16), [[UV5:%[0-9]+]]:_(s16) = G_UNMERGE_VALUES [[COPY2]](<2 x s16>) 154 ; VI: [[FSHR:%[0-9]+]]:_(s16) = G_FSHR [[UV]], [[UV2]], [[UV4]](s16) 155 ; VI: [[FSHR1:%[0-9]+]]:_(s16) = G_FSHR [[UV1]], [[UV3]], [[UV5]](s16) 156 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[FSHR]](s16), [[FSHR1]](s16) 157 ; VI: $vgpr0 = COPY [[BUILD_VECTOR]](<2 x s16>) 158 ; GFX9-LABEL: name: test_fshr_v2s16_v2s16 159 ; GFX9: [[COPY:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr0 160 ; GFX9: [[COPY1:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr1 161 ; GFX9: [[COPY2:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr2 162 ; GFX9: [[UV:%[0-9]+]]:_(s16), [[UV1:%[0-9]+]]:_(s16) = G_UNMERGE_VALUES [[COPY]](<2 x s16>) 163 ; GFX9: [[UV2:%[0-9]+]]:_(s16), [[UV3:%[0-9]+]]:_(s16) = G_UNMERGE_VALUES [[COPY1]](<2 x s16>) 164 ; GFX9: [[UV4:%[0-9]+]]:_(s16), [[UV5:%[0-9]+]]:_(s16) = G_UNMERGE_VALUES [[COPY2]](<2 x s16>) 165 ; GFX9: [[FSHR:%[0-9]+]]:_(s16) = G_FSHR [[UV]], [[UV2]], [[UV4]](s16) 166 ; GFX9: [[FSHR1:%[0-9]+]]:_(s16) = G_FSHR [[UV1]], [[UV3]], [[UV5]](s16) 167 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[FSHR]](s16), [[FSHR1]](s16) 168 ; GFX9: $vgpr0 = COPY [[BUILD_VECTOR]](<2 x s16>) 169 %0:_(<2 x s16>) = COPY $vgpr0 170 %1:_(<2 x s16>) = COPY $vgpr1 171 %2:_(<2 x s16>) = COPY $vgpr2 172 %3:_(<2 x s16>) = G_FSHR %0, %1, %2 173 $vgpr0 = COPY %3 174... 175 176--- 177name: test_fshr_s64_s64 178body: | 179 bb.0: 180 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5 181 182 ; SI-LABEL: name: test_fshr_s64_s64 183 ; SI: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1 184 ; SI: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3 185 ; SI: [[COPY2:%[0-9]+]]:_(s64) = COPY $vgpr4_vgpr5 186 ; SI: [[FSHR:%[0-9]+]]:_(s64) = G_FSHR [[COPY]], [[COPY1]], [[COPY2]](s64) 187 ; SI: $vgpr0_vgpr1 = COPY [[FSHR]](s64) 188 ; VI-LABEL: name: test_fshr_s64_s64 189 ; VI: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1 190 ; VI: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3 191 ; VI: [[COPY2:%[0-9]+]]:_(s64) = COPY $vgpr4_vgpr5 192 ; VI: [[FSHR:%[0-9]+]]:_(s64) = G_FSHR [[COPY]], [[COPY1]], [[COPY2]](s64) 193 ; VI: $vgpr0_vgpr1 = COPY [[FSHR]](s64) 194 ; GFX9-LABEL: name: test_fshr_s64_s64 195 ; GFX9: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1 196 ; GFX9: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3 197 ; GFX9: [[COPY2:%[0-9]+]]:_(s64) = COPY $vgpr4_vgpr5 198 ; GFX9: [[FSHR:%[0-9]+]]:_(s64) = G_FSHR [[COPY]], [[COPY1]], [[COPY2]](s64) 199 ; GFX9: $vgpr0_vgpr1 = COPY [[FSHR]](s64) 200 %0:_(s64) = COPY $vgpr0_vgpr1 201 %1:_(s64) = COPY $vgpr2_vgpr3 202 %2:_(s64) = COPY $vgpr4_vgpr5 203 %3:_(s64) = G_FSHR %0, %1, %2 204 $vgpr0_vgpr1 = COPY %3 205... 206 207--- 208name: test_fshr_s8_s8 209body: | 210 bb.0: 211 liveins: $vgpr0, $vgpr1, $vgpr2 212 213 ; SI-LABEL: name: test_fshr_s8_s8 214 ; SI: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 215 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 216 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 217 ; SI: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[COPY]](s32) 218 ; SI: [[TRUNC1:%[0-9]+]]:_(s8) = G_TRUNC [[COPY1]](s32) 219 ; SI: [[TRUNC2:%[0-9]+]]:_(s8) = G_TRUNC [[COPY2]](s32) 220 ; SI: [[FSHR:%[0-9]+]]:_(s8) = G_FSHR [[TRUNC]], [[TRUNC1]], [[TRUNC2]](s8) 221 ; SI: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[FSHR]](s8) 222 ; SI: $vgpr0 = COPY [[ANYEXT]](s32) 223 ; VI-LABEL: name: test_fshr_s8_s8 224 ; VI: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 225 ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 226 ; VI: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 227 ; VI: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[COPY]](s32) 228 ; VI: [[TRUNC1:%[0-9]+]]:_(s8) = G_TRUNC [[COPY1]](s32) 229 ; VI: [[TRUNC2:%[0-9]+]]:_(s8) = G_TRUNC [[COPY2]](s32) 230 ; VI: [[FSHR:%[0-9]+]]:_(s8) = G_FSHR [[TRUNC]], [[TRUNC1]], [[TRUNC2]](s8) 231 ; VI: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[FSHR]](s8) 232 ; VI: $vgpr0 = COPY [[ANYEXT]](s32) 233 ; GFX9-LABEL: name: test_fshr_s8_s8 234 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 235 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 236 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 237 ; GFX9: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[COPY]](s32) 238 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s8) = G_TRUNC [[COPY1]](s32) 239 ; GFX9: [[TRUNC2:%[0-9]+]]:_(s8) = G_TRUNC [[COPY2]](s32) 240 ; GFX9: [[FSHR:%[0-9]+]]:_(s8) = G_FSHR [[TRUNC]], [[TRUNC1]], [[TRUNC2]](s8) 241 ; GFX9: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[FSHR]](s8) 242 ; GFX9: $vgpr0 = COPY [[ANYEXT]](s32) 243 %0:_(s32) = COPY $vgpr0 244 %1:_(s32) = COPY $vgpr1 245 %2:_(s32) = COPY $vgpr2 246 %3:_(s8) = G_TRUNC %0 247 %4:_(s8) = G_TRUNC %1 248 %5:_(s8) = G_TRUNC %2 249 %6:_(s8) = G_FSHR %3, %4, %5 250 %7:_(s32) = G_ANYEXT %6 251 $vgpr0 = COPY %7 252... 253 254--- 255name: test_fshr_s24_s24 256body: | 257 bb.0: 258 liveins: $vgpr0, $vgpr1, $vgpr2 259 260 ; SI-LABEL: name: test_fshr_s24_s24 261 ; SI: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 262 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 263 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 264 ; SI: [[TRUNC:%[0-9]+]]:_(s24) = G_TRUNC [[COPY]](s32) 265 ; SI: [[TRUNC1:%[0-9]+]]:_(s24) = G_TRUNC [[COPY1]](s32) 266 ; SI: [[TRUNC2:%[0-9]+]]:_(s24) = G_TRUNC [[COPY2]](s32) 267 ; SI: [[FSHR:%[0-9]+]]:_(s24) = G_FSHR [[TRUNC]], [[TRUNC1]], [[TRUNC2]](s24) 268 ; SI: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[FSHR]](s24) 269 ; SI: $vgpr0 = COPY [[ANYEXT]](s32) 270 ; VI-LABEL: name: test_fshr_s24_s24 271 ; VI: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 272 ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 273 ; VI: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 274 ; VI: [[TRUNC:%[0-9]+]]:_(s24) = G_TRUNC [[COPY]](s32) 275 ; VI: [[TRUNC1:%[0-9]+]]:_(s24) = G_TRUNC [[COPY1]](s32) 276 ; VI: [[TRUNC2:%[0-9]+]]:_(s24) = G_TRUNC [[COPY2]](s32) 277 ; VI: [[FSHR:%[0-9]+]]:_(s24) = G_FSHR [[TRUNC]], [[TRUNC1]], [[TRUNC2]](s24) 278 ; VI: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[FSHR]](s24) 279 ; VI: $vgpr0 = COPY [[ANYEXT]](s32) 280 ; GFX9-LABEL: name: test_fshr_s24_s24 281 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 282 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 283 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2 284 ; GFX9: [[TRUNC:%[0-9]+]]:_(s24) = G_TRUNC [[COPY]](s32) 285 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s24) = G_TRUNC [[COPY1]](s32) 286 ; GFX9: [[TRUNC2:%[0-9]+]]:_(s24) = G_TRUNC [[COPY2]](s32) 287 ; GFX9: [[FSHR:%[0-9]+]]:_(s24) = G_FSHR [[TRUNC]], [[TRUNC1]], [[TRUNC2]](s24) 288 ; GFX9: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[FSHR]](s24) 289 ; GFX9: $vgpr0 = COPY [[ANYEXT]](s32) 290 %0:_(s32) = COPY $vgpr0 291 %1:_(s32) = COPY $vgpr1 292 %2:_(s32) = COPY $vgpr2 293 %3:_(s24) = G_TRUNC %0 294 %4:_(s24) = G_TRUNC %1 295 %5:_(s24) = G_TRUNC %2 296 %6:_(s24) = G_FSHR %3, %4, %5 297 %7:_(s32) = G_ANYEXT %6 298 $vgpr0 = COPY %7 299... 300