1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -march=amdgcn -run-pass=amdgpu-prelegalizer-combiner -verify-machineinstrs %s -o - | FileCheck %s 3 4--- 5name: test_ashr_i44 6tracksRegLiveness: true 7body: | 8 bb.0: 9 liveins: $vgpr0, $vgpr1 10 11 ; CHECK-LABEL: name: test_ashr_i44 12 ; CHECK: liveins: $vgpr0, $vgpr1 13 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 14 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 15 ; CHECK: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[COPY]](s32), [[COPY1]](s32) 16 ; CHECK: [[TRUNC:%[0-9]+]]:_(s44) = G_TRUNC [[MV]](s64) 17 ; CHECK: [[C:%[0-9]+]]:_(s44) = G_CONSTANT i44 43 18 ; CHECK: [[ASHR:%[0-9]+]]:_(s44) = G_ASHR [[TRUNC]], [[C]](s44) 19 ; CHECK: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[ASHR]](s44) 20 ; CHECK: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[ANYEXT]](s64) 21 ; CHECK: $vgpr0 = COPY [[UV]](s32) 22 ; CHECK: $vgpr1 = COPY [[UV1]](s32) 23 ; CHECK: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1 24 %1:_(s32) = COPY $vgpr0 25 %2:_(s32) = COPY $vgpr1 26 %3:_(s64) = G_MERGE_VALUES %1(s32), %2(s32) 27 %4:_(s44) = G_TRUNC %3(s64) 28 %5:_(s44) = G_CONSTANT i44 22 29 %6:_(s44) = G_ASHR %4, %5(s44) 30 %7:_(s44) = G_ASHR %6, %5(s44) 31 %8:_(s64) = G_ANYEXT %7(s44) 32 %9:_(s32), %10:_(s32) = G_UNMERGE_VALUES %8(s64) 33 $vgpr0 = COPY %9(s32) 34 $vgpr1 = COPY %10(s32) 35 SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1 36 37... 38--- 39name: test_ashr_i55 40tracksRegLiveness: true 41body: | 42 bb.0: 43 liveins: $sgpr0, $sgpr1 44 45 ; CHECK-LABEL: name: test_ashr_i55 46 ; CHECK: liveins: $sgpr0, $sgpr1 47 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr0 48 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr1 49 ; CHECK: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[COPY]](s32), [[COPY1]](s32) 50 ; CHECK: [[TRUNC:%[0-9]+]]:_(s55) = G_TRUNC [[MV]](s64) 51 ; CHECK: [[C:%[0-9]+]]:_(s55) = G_CONSTANT i55 53 52 ; CHECK: [[ASHR:%[0-9]+]]:_(s55) = G_ASHR [[TRUNC]], [[C]](s55) 53 ; CHECK: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[ASHR]](s55) 54 ; CHECK: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[ANYEXT]](s64) 55 ; CHECK: $sgpr0 = COPY [[UV]](s32) 56 ; CHECK: $sgpr1 = COPY [[UV1]](s32) 57 ; CHECK: SI_RETURN_TO_EPILOG implicit $sgpr0, implicit $sgpr1 58 %1:_(s32) = COPY $sgpr0 59 %2:_(s32) = COPY $sgpr1 60 %3:_(s64) = G_MERGE_VALUES %1(s32), %2(s32) 61 %4:_(s55) = G_TRUNC %3(s64) 62 %5:_(s55) = G_CONSTANT i55 50 63 %7:_(s55) = G_CONSTANT i55 3 64 %6:_(s55) = G_ASHR %4, %5(s55) 65 %8:_(s55) = G_ASHR %6, %7(s55) 66 %9:_(s64) = G_ANYEXT %8(s55) 67 %10:_(s32), %11:_(s32) = G_UNMERGE_VALUES %9(s64) 68 $sgpr0 = COPY %10(s32) 69 $sgpr1 = COPY %11(s32) 70 SI_RETURN_TO_EPILOG implicit $sgpr0, implicit $sgpr1 71 72... 73--- 74name: test_lshr_i44 75tracksRegLiveness: true 76body: | 77 bb.0: 78 liveins: $sgpr0, $sgpr1 79 80 ; CHECK-LABEL: name: test_lshr_i44 81 ; CHECK: liveins: $sgpr0, $sgpr1 82 ; CHECK: [[C:%[0-9]+]]:_(s44) = G_CONSTANT i44 0 83 ; CHECK: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[C]](s44) 84 ; CHECK: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[ANYEXT]](s64) 85 ; CHECK: $sgpr0 = COPY [[UV]](s32) 86 ; CHECK: $sgpr1 = COPY [[UV1]](s32) 87 ; CHECK: SI_RETURN_TO_EPILOG implicit $sgpr0, implicit $sgpr1 88 %1:_(s32) = COPY $sgpr0 89 %2:_(s32) = COPY $sgpr1 90 %3:_(s64) = G_MERGE_VALUES %1(s32), %2(s32) 91 %4:_(s44) = G_TRUNC %3(s64) 92 %5:_(s44) = G_CONSTANT i44 22 93 %6:_(s44) = G_LSHR %4, %5(s44) 94 %7:_(s44) = G_LSHR %6, %5(s44) 95 %8:_(s64) = G_ANYEXT %7(s44) 96 %9:_(s32), %10:_(s32) = G_UNMERGE_VALUES %8(s64) 97 $sgpr0 = COPY %9(s32) 98 $sgpr1 = COPY %10(s32) 99 SI_RETURN_TO_EPILOG implicit $sgpr0, implicit $sgpr1 100 101... 102--- 103name: test_lshr_i55 104tracksRegLiveness: true 105body: | 106 bb.0: 107 liveins: $vgpr0, $vgpr1 108 109 ; CHECK-LABEL: name: test_lshr_i55 110 ; CHECK: liveins: $vgpr0, $vgpr1 111 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 112 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 113 ; CHECK: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[COPY]](s32), [[COPY1]](s32) 114 ; CHECK: [[TRUNC:%[0-9]+]]:_(s55) = G_TRUNC [[MV]](s64) 115 ; CHECK: [[C:%[0-9]+]]:_(s55) = G_CONSTANT i55 53 116 ; CHECK: [[LSHR:%[0-9]+]]:_(s55) = G_LSHR [[TRUNC]], [[C]](s55) 117 ; CHECK: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[LSHR]](s55) 118 ; CHECK: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[ANYEXT]](s64) 119 ; CHECK: $vgpr0 = COPY [[UV]](s32) 120 ; CHECK: $vgpr1 = COPY [[UV1]](s32) 121 ; CHECK: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1 122 %1:_(s32) = COPY $vgpr0 123 %2:_(s32) = COPY $vgpr1 124 %3:_(s64) = G_MERGE_VALUES %1(s32), %2(s32) 125 %4:_(s55) = G_TRUNC %3(s64) 126 %5:_(s55) = G_CONSTANT i55 50 127 %7:_(s55) = G_CONSTANT i55 3 128 %6:_(s55) = G_LSHR %4, %5(s55) 129 %8:_(s55) = G_LSHR %6, %7(s55) 130 %9:_(s64) = G_ANYEXT %8(s55) 131 %10:_(s32), %11:_(s32) = G_UNMERGE_VALUES %9(s64) 132 $vgpr0 = COPY %10(s32) 133 $vgpr1 = COPY %11(s32) 134 SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1 135 136... 137--- 138name: test_shl_i44 139tracksRegLiveness: true 140body: | 141 bb.0: 142 liveins: $vgpr0, $vgpr1 143 144 ; CHECK-LABEL: name: test_shl_i44 145 ; CHECK: liveins: $vgpr0, $vgpr1 146 ; CHECK: [[C:%[0-9]+]]:_(s44) = G_CONSTANT i44 0 147 ; CHECK: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[C]](s44) 148 ; CHECK: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[ANYEXT]](s64) 149 ; CHECK: $vgpr0 = COPY [[UV]](s32) 150 ; CHECK: $vgpr1 = COPY [[UV1]](s32) 151 ; CHECK: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1 152 %1:_(s32) = COPY $vgpr0 153 %2:_(s32) = COPY $vgpr1 154 %3:_(s64) = G_MERGE_VALUES %1(s32), %2(s32) 155 %4:_(s44) = G_TRUNC %3(s64) 156 %5:_(s44) = G_CONSTANT i44 22 157 %6:_(s44) = G_SHL %4, %5(s44) 158 %7:_(s44) = G_SHL %6, %5(s44) 159 %8:_(s64) = G_ANYEXT %7(s44) 160 %9:_(s32), %10:_(s32) = G_UNMERGE_VALUES %8(s64) 161 $vgpr0 = COPY %9(s32) 162 $vgpr1 = COPY %10(s32) 163 SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1 164 165... 166--- 167name: test_shl_i55 168tracksRegLiveness: true 169body: | 170 bb.0: 171 liveins: $sgpr0, $sgpr1 172 173 ; CHECK-LABEL: name: test_shl_i55 174 ; CHECK: liveins: $sgpr0, $sgpr1 175 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr0 176 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr1 177 ; CHECK: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[COPY]](s32), [[COPY1]](s32) 178 ; CHECK: [[TRUNC:%[0-9]+]]:_(s55) = G_TRUNC [[MV]](s64) 179 ; CHECK: [[C:%[0-9]+]]:_(s55) = G_CONSTANT i55 53 180 ; CHECK: [[SHL:%[0-9]+]]:_(s55) = G_SHL [[TRUNC]], [[C]](s55) 181 ; CHECK: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[SHL]](s55) 182 ; CHECK: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[ANYEXT]](s64) 183 ; CHECK: $sgpr0 = COPY [[UV]](s32) 184 ; CHECK: $sgpr1 = COPY [[UV1]](s32) 185 ; CHECK: SI_RETURN_TO_EPILOG implicit $sgpr0, implicit $sgpr1 186 %1:_(s32) = COPY $sgpr0 187 %2:_(s32) = COPY $sgpr1 188 %3:_(s64) = G_MERGE_VALUES %1(s32), %2(s32) 189 %4:_(s55) = G_TRUNC %3(s64) 190 %5:_(s55) = G_CONSTANT i55 50 191 %7:_(s55) = G_CONSTANT i55 3 192 %6:_(s55) = G_SHL %4, %5(s55) 193 %8:_(s55) = G_SHL %6, %7(s55) 194 %9:_(s64) = G_ANYEXT %8(s55) 195 %10:_(s32), %11:_(s32) = G_UNMERGE_VALUES %9(s64) 196 $sgpr0 = COPY %10(s32) 197 $sgpr1 = COPY %11(s32) 198 SI_RETURN_TO_EPILOG implicit $sgpr0, implicit $sgpr1 199 200... 201--- 202name: sshlsat_i44 203tracksRegLiveness: true 204body: | 205 bb.0: 206 liveins: $sgpr0, $sgpr1 207 208 ; CHECK-LABEL: name: sshlsat_i44 209 ; CHECK: liveins: $sgpr0, $sgpr1 210 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr0 211 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr1 212 ; CHECK: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[COPY]](s32), [[COPY1]](s32) 213 ; CHECK: [[TRUNC:%[0-9]+]]:_(s44) = G_TRUNC [[MV]](s64) 214 ; CHECK: [[C:%[0-9]+]]:_(s44) = G_CONSTANT i44 43 215 ; CHECK: [[SSHLSAT:%[0-9]+]]:_(s44) = G_SSHLSAT [[TRUNC]], [[C]](s44) 216 ; CHECK: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[SSHLSAT]](s44) 217 ; CHECK: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[ANYEXT]](s64) 218 ; CHECK: [[INT:%[0-9]+]]:_(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.readfirstlane), [[UV]](s32) 219 ; CHECK: $sgpr0 = COPY [[INT]](s32) 220 ; CHECK: [[INT1:%[0-9]+]]:_(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.readfirstlane), [[UV1]](s32) 221 ; CHECK: $sgpr1 = COPY [[INT1]](s32) 222 ; CHECK: SI_RETURN_TO_EPILOG implicit $sgpr0, implicit $sgpr1 223 %1:_(s32) = COPY $sgpr0 224 %2:_(s32) = COPY $sgpr1 225 %3:_(s64) = G_MERGE_VALUES %1(s32), %2(s32) 226 %0:_(s44) = G_TRUNC %3(s64) 227 %5:_(s44) = G_CONSTANT i44 22 228 %6:_(s44) = G_SSHLSAT %0, %5(s44) 229 %7:_(s44) = G_SSHLSAT %6, %5(s44) 230 %8:_(s64) = G_ANYEXT %7(s44) 231 %9:_(s32), %10:_(s32) = G_UNMERGE_VALUES %8(s64) 232 %11:_(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.readfirstlane), %9(s32) 233 $sgpr0 = COPY %11(s32) 234 %12:_(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.readfirstlane), %10(s32) 235 $sgpr1 = COPY %12(s32) 236 SI_RETURN_TO_EPILOG implicit $sgpr0, implicit $sgpr1 237 238... 239--- 240name: sshlsat_i55 241tracksRegLiveness: true 242body: | 243 bb.0: 244 liveins: $vgpr0, $vgpr1 245 246 ; CHECK-LABEL: name: sshlsat_i55 247 ; CHECK: liveins: $vgpr0, $vgpr1 248 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 249 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 250 ; CHECK: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[COPY]](s32), [[COPY1]](s32) 251 ; CHECK: [[TRUNC:%[0-9]+]]:_(s55) = G_TRUNC [[MV]](s64) 252 ; CHECK: [[C:%[0-9]+]]:_(s55) = G_CONSTANT i55 53 253 ; CHECK: [[SSHLSAT:%[0-9]+]]:_(s55) = G_SSHLSAT [[TRUNC]], [[C]](s55) 254 ; CHECK: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[SSHLSAT]](s55) 255 ; CHECK: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[ANYEXT]](s64) 256 ; CHECK: [[INT:%[0-9]+]]:_(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.readfirstlane), [[UV]](s32) 257 ; CHECK: $vgpr0 = COPY [[INT]](s32) 258 ; CHECK: [[INT1:%[0-9]+]]:_(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.readfirstlane), [[UV1]](s32) 259 ; CHECK: $vgpr1 = COPY [[INT1]](s32) 260 ; CHECK: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1 261 %1:_(s32) = COPY $vgpr0 262 %2:_(s32) = COPY $vgpr1 263 %3:_(s64) = G_MERGE_VALUES %1(s32), %2(s32) 264 %0:_(s55) = G_TRUNC %3(s64) 265 %5:_(s55) = G_CONSTANT i55 50 266 %7:_(s55) = G_CONSTANT i55 3 267 %6:_(s55) = G_SSHLSAT %0, %5(s55) 268 %8:_(s55) = G_SSHLSAT %6, %7(s55) 269 %9:_(s64) = G_ANYEXT %8(s55) 270 %10:_(s32), %11:_(s32) = G_UNMERGE_VALUES %9(s64) 271 %12:_(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.readfirstlane), %10(s32) 272 $vgpr0 = COPY %12(s32) 273 %13:_(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.readfirstlane), %11(s32) 274 $vgpr1 = COPY %13(s32) 275 SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1 276 277... 278--- 279name: ushlsat_i44 280tracksRegLiveness: true 281body: | 282 bb.0: 283 liveins: $vgpr0, $vgpr1, $sgpr30_sgpr31 284 285 ; CHECK-LABEL: name: ushlsat_i44 286 ; CHECK: liveins: $vgpr0, $vgpr1, $sgpr30_sgpr31 287 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 288 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 289 ; CHECK: [[COPY2:%[0-9]+]]:sgpr_64 = COPY $sgpr30_sgpr31 290 ; CHECK: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[COPY]](s32), [[COPY1]](s32) 291 ; CHECK: [[TRUNC:%[0-9]+]]:_(s44) = G_TRUNC [[MV]](s64) 292 ; CHECK: [[C:%[0-9]+]]:_(s44) = G_CONSTANT i44 22 293 ; CHECK: [[USHLSAT:%[0-9]+]]:_(s44) = G_USHLSAT [[TRUNC]], [[C]](s44) 294 ; CHECK: [[USHLSAT1:%[0-9]+]]:_(s44) = G_USHLSAT [[USHLSAT]], [[C]](s44) 295 ; CHECK: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[USHLSAT1]](s44) 296 ; CHECK: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[ANYEXT]](s64) 297 ; CHECK: $vgpr0 = COPY [[UV]](s32) 298 ; CHECK: $vgpr1 = COPY [[UV1]](s32) 299 ; CHECK: [[COPY3:%[0-9]+]]:ccr_sgpr_64 = COPY [[COPY2]] 300 ; CHECK: S_SETPC_B64_return [[COPY3]], implicit $vgpr0, implicit $vgpr1 301 %2:_(s32) = COPY $vgpr0 302 %3:_(s32) = COPY $vgpr1 303 %1:sgpr_64 = COPY $sgpr30_sgpr31 304 %4:_(s64) = G_MERGE_VALUES %2(s32), %3(s32) 305 %0:_(s44) = G_TRUNC %4(s64) 306 %5:_(s44) = G_CONSTANT i44 22 307 %6:_(s44) = G_USHLSAT %0, %5(s44) 308 %7:_(s44) = G_USHLSAT %6, %5(s44) 309 %9:_(s64) = G_ANYEXT %7(s44) 310 %10:_(s32), %11:_(s32) = G_UNMERGE_VALUES %9(s64) 311 $vgpr0 = COPY %10(s32) 312 $vgpr1 = COPY %11(s32) 313 %8:ccr_sgpr_64 = COPY %1 314 S_SETPC_B64_return %8, implicit $vgpr0, implicit $vgpr1 315 316... 317--- 318name: ushlsat_i55 319tracksRegLiveness: true 320body: | 321 bb.0: 322 liveins: $vgpr0, $vgpr1, $sgpr30_sgpr31 323 324 ; CHECK-LABEL: name: ushlsat_i55 325 ; CHECK: liveins: $vgpr0, $vgpr1, $sgpr30_sgpr31 326 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0 327 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1 328 ; CHECK: [[COPY2:%[0-9]+]]:sgpr_64 = COPY $sgpr30_sgpr31 329 ; CHECK: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[COPY]](s32), [[COPY1]](s32) 330 ; CHECK: [[TRUNC:%[0-9]+]]:_(s55) = G_TRUNC [[MV]](s64) 331 ; CHECK: [[C:%[0-9]+]]:_(s55) = G_CONSTANT i55 53 332 ; CHECK: [[USHLSAT:%[0-9]+]]:_(s55) = G_USHLSAT [[TRUNC]], [[C]](s55) 333 ; CHECK: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[USHLSAT]](s55) 334 ; CHECK: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[ANYEXT]](s64) 335 ; CHECK: $vgpr0 = COPY [[UV]](s32) 336 ; CHECK: $vgpr1 = COPY [[UV1]](s32) 337 ; CHECK: [[COPY3:%[0-9]+]]:ccr_sgpr_64 = COPY [[COPY2]] 338 ; CHECK: S_SETPC_B64_return [[COPY3]], implicit $vgpr0, implicit $vgpr1 339 %2:_(s32) = COPY $vgpr0 340 %3:_(s32) = COPY $vgpr1 341 %1:sgpr_64 = COPY $sgpr30_sgpr31 342 %4:_(s64) = G_MERGE_VALUES %2(s32), %3(s32) 343 %0:_(s55) = G_TRUNC %4(s64) 344 %5:_(s55) = G_CONSTANT i55 50 345 %7:_(s55) = G_CONSTANT i55 3 346 %6:_(s55) = G_USHLSAT %0, %5(s55) 347 %8:_(s55) = G_USHLSAT %6, %7(s55) 348 %10:_(s64) = G_ANYEXT %8(s55) 349 %11:_(s32), %12:_(s32) = G_UNMERGE_VALUES %10(s64) 350 $vgpr0 = COPY %11(s32) 351 $vgpr1 = COPY %12(s32) 352 %9:ccr_sgpr_64 = COPY %1 353 S_SETPC_B64_return %9, implicit $vgpr0, implicit $vgpr1 354 355... 356