[llvm] RenameIndependentSubregs: Add missing sub-range for new IMPLICIT_DEFs (PR #89050)

Petar Avramovic via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 17 08:53:34 PDT 2024


https://github.com/petar-avramovic updated https://github.com/llvm/llvm-project/pull/89050

>From 542205a46ec4429fc1ff7bbc486812656ee304d3 Mon Sep 17 00:00:00 2001
From: Petar Avramovic <Petar.Avramovic at amd.com>
Date: Wed, 17 Apr 2024 17:45:35 +0200
Subject: [PATCH 1/2] precommit

---
 ...rval-bug-in-rename-independent-subregs.mir | 5426 +++++++++++++++++
 1 file changed, 5426 insertions(+)
 create mode 100644 llvm/test/CodeGen/AMDGPU/live-interval-bug-in-rename-independent-subregs.mir

diff --git a/llvm/test/CodeGen/AMDGPU/live-interval-bug-in-rename-independent-subregs.mir b/llvm/test/CodeGen/AMDGPU/live-interval-bug-in-rename-independent-subregs.mir
new file mode 100644
index 00000000000000..f9e91810e8affe
--- /dev/null
+++ b/llvm/test/CodeGen/AMDGPU/live-interval-bug-in-rename-independent-subregs.mir
@@ -0,0 +1,5426 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 4
+# RUN: llc -mtriple=amdgcn--amdpal -mcpu=gfx1010 -start-before=rename-independent-subregs -stop-before=amdgpu-mark-last-scratch-load %s -o - | FileCheck -check-prefix=GCN %s
+
+--- |
+  source_filename = "llpc_compute_8"
+  target datalayout = "e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-p7:160:256:256:32-p8:128:128-p9:192:256:256:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-G1-ni:7:8:9"
+  target triple = "amdgcn--amdpal"
+
+  define dllexport amdgpu_cs void @_amdgpu_cs_main(i32 inreg noundef %globalTable, ptr addrspace(4) inreg noundef %numWorkgroupsPtr, i32 inreg noundef %userdata3, <3 x i32> inreg noundef %WorkgroupId, i32 inreg noundef %MultiDispatchInfo, <3 x i32> noundef %LocalInvocationId) #0 !spirv.ExecutionModel !10 !lgc.shaderstage !11 {
+  .entry:
+    %0 = call i64 @llvm.amdgcn.s.getpc()
+    %1 = and i64 %0, -4294967296
+    %2 = zext i32 %userdata3 to i64
+    %3 = or disjoint i64 %1, %2
+    %4 = inttoptr i64 %3 to ptr addrspace(4)
+    %5 = getelementptr i8, ptr addrspace(4) %4, i64 16, !amdgpu.uniform !12
+    %6 = load <4 x i32>, ptr addrspace(4) %5, align 16
+    %7 = call i64 @llvm.amdgcn.ballot.i64(i1 true)
+    br label %8, !amdgpu.uniform !12
+
+  8:                                                ; preds = %Flow89, %.entry
+    %lsr.iv11 = phi i64 [ 3, %.entry ], [ %16, %Flow89 ]
+    %9 = add i64 %lsr.iv11, -3
+    %10 = shl nuw i64 1, %9
+    %11 = and i64 %10, %7
+    %.fr = freeze i64 %11
+    %.not = icmp eq i64 %.fr, 0
+    br i1 %.not, label %12, label %Flow89, !amdgpu.uniform !12
+
+  12:                                               ; preds = %8
+    %13 = add i64 %lsr.iv11, -2
+    %14 = shl nuw i64 1, %13
+    %15 = and i64 %14, %7
+    %.fr.1 = freeze i64 %15
+    %.not.1 = icmp eq i64 %.fr.1, 0
+    br i1 %.not.1, label %33, label %Flow90, !amdgpu.uniform !12
+
+  Flow89:                                           ; preds = %Flow90, %8
+    %16 = phi i64 [ %37, %Flow90 ], [ undef, %8 ]
+    %17 = phi i1 [ %38, %Flow90 ], [ false, %8 ]
+    %18 = phi i1 [ %39, %Flow90 ], [ false, %8 ]
+    %19 = phi i1 [ %40, %Flow90 ], [ false, %8 ]
+    %20 = phi i1 [ %41, %Flow90 ], [ false, %8 ]
+    %21 = phi i1 [ %42, %Flow90 ], [ false, %8 ]
+    %22 = phi i1 [ %43, %Flow90 ], [ false, %8 ]
+    %23 = phi i1 [ %44, %Flow90 ], [ false, %8 ]
+    %24 = phi i1 [ false, %Flow90 ], [ true, %8 ]
+    %25 = phi i32 [ %45, %Flow90 ], [ undef, %8 ]
+    %26 = phi i64 [ %13, %Flow90 ], [ poison, %8 ]
+    %27 = phi i64 [ %46, %Flow90 ], [ poison, %8 ]
+    %28 = phi i64 [ %47, %Flow90 ], [ poison, %8 ]
+    %29 = phi i64 [ %48, %Flow90 ], [ poison, %8 ]
+    %30 = phi i64 [ %49, %Flow90 ], [ poison, %8 ]
+    %31 = phi i64 [ %50, %Flow90 ], [ poison, %8 ]
+    %32 = phi i1 [ %51, %Flow90 ], [ true, %8 ]
+    br i1 %32, label %loop.exit.guard, label %8, !amdgpu.uniform !12
+
+  33:                                               ; preds = %12
+    %34 = add i64 %lsr.iv11, -1
+    %35 = shl nuw i64 1, %34
+    %36 = and i64 %35, %7
+    %.fr.2 = freeze i64 %36
+    %.not.2 = icmp eq i64 %.fr.2, 0
+    br i1 %.not.2, label %52, label %Flow91, !amdgpu.uniform !12
+
+  Flow90:                                           ; preds = %Flow91, %12
+    %37 = phi i64 [ %55, %Flow91 ], [ undef, %12 ]
+    %38 = phi i1 [ %56, %Flow91 ], [ false, %12 ]
+    %39 = phi i1 [ %57, %Flow91 ], [ false, %12 ]
+    %40 = phi i1 [ %58, %Flow91 ], [ false, %12 ]
+    %41 = phi i1 [ %59, %Flow91 ], [ false, %12 ]
+    %42 = phi i1 [ %60, %Flow91 ], [ false, %12 ]
+    %43 = phi i1 [ %61, %Flow91 ], [ false, %12 ]
+    %44 = phi i1 [ false, %Flow91 ], [ true, %12 ]
+    %45 = phi i32 [ %62, %Flow91 ], [ undef, %12 ]
+    %46 = phi i64 [ %34, %Flow91 ], [ poison, %12 ]
+    %47 = phi i64 [ %63, %Flow91 ], [ poison, %12 ]
+    %48 = phi i64 [ %64, %Flow91 ], [ poison, %12 ]
+    %49 = phi i64 [ %65, %Flow91 ], [ poison, %12 ]
+    %50 = phi i64 [ %66, %Flow91 ], [ poison, %12 ]
+    %51 = phi i1 [ %67, %Flow91 ], [ true, %12 ]
+    br label %Flow89, !amdgpu.uniform !12
+
+  52:                                               ; preds = %33
+    %53 = shl nuw i64 1, %lsr.iv11
+    %54 = and i64 %53, %7
+    %.fr.3 = freeze i64 %54
+    %.not.3 = icmp eq i64 %.fr.3, 0
+    br i1 %.not.3, label %68, label %Flow92, !amdgpu.uniform !12
+
+  Flow91:                                           ; preds = %Flow92, %33
+    %55 = phi i64 [ %72, %Flow92 ], [ undef, %33 ]
+    %56 = phi i1 [ %73, %Flow92 ], [ false, %33 ]
+    %57 = phi i1 [ %74, %Flow92 ], [ false, %33 ]
+    %58 = phi i1 [ %75, %Flow92 ], [ false, %33 ]
+    %59 = phi i1 [ %76, %Flow92 ], [ false, %33 ]
+    %60 = phi i1 [ %77, %Flow92 ], [ false, %33 ]
+    %61 = phi i1 [ false, %Flow92 ], [ true, %33 ]
+    %62 = phi i32 [ %78, %Flow92 ], [ undef, %33 ]
+    %63 = phi i64 [ %79, %Flow92 ], [ poison, %33 ]
+    %64 = phi i64 [ %80, %Flow92 ], [ poison, %33 ]
+    %65 = phi i64 [ %81, %Flow92 ], [ poison, %33 ]
+    %66 = phi i64 [ %82, %Flow92 ], [ poison, %33 ]
+    %67 = phi i1 [ %83, %Flow92 ], [ true, %33 ]
+    br label %Flow90, !amdgpu.uniform !12
+
+  68:                                               ; preds = %52
+    %69 = add i64 %lsr.iv11, 1
+    %70 = shl nuw i64 1, %69
+    %71 = and i64 %70, %7
+    %.fr.4 = freeze i64 %71
+    %.not.4 = icmp eq i64 %.fr.4, 0
+    br i1 %.not.4, label %84, label %Flow93, !amdgpu.uniform !12
+
+  Flow92:                                           ; preds = %Flow93, %52
+    %72 = phi i64 [ %88, %Flow93 ], [ undef, %52 ]
+    %73 = phi i1 [ %89, %Flow93 ], [ false, %52 ]
+    %74 = phi i1 [ %90, %Flow93 ], [ false, %52 ]
+    %75 = phi i1 [ %91, %Flow93 ], [ false, %52 ]
+    %76 = phi i1 [ %92, %Flow93 ], [ false, %52 ]
+    %77 = phi i1 [ false, %Flow93 ], [ true, %52 ]
+    %78 = phi i32 [ %93, %Flow93 ], [ undef, %52 ]
+    %79 = phi i64 [ %69, %Flow93 ], [ poison, %52 ]
+    %80 = phi i64 [ %94, %Flow93 ], [ poison, %52 ]
+    %81 = phi i64 [ %95, %Flow93 ], [ poison, %52 ]
+    %82 = phi i64 [ %96, %Flow93 ], [ poison, %52 ]
+    %83 = phi i1 [ %97, %Flow93 ], [ true, %52 ]
+    br label %Flow91, !amdgpu.uniform !12
+
+  84:                                               ; preds = %68
+    %85 = add i64 %lsr.iv11, 2
+    %86 = shl nuw i64 1, %85
+    %87 = and i64 %86, %7
+    %.fr.5 = freeze i64 %87
+    %.not.5 = icmp eq i64 %.fr.5, 0
+    br i1 %.not.5, label %98, label %Flow94, !amdgpu.uniform !12
+
+  Flow93:                                           ; preds = %Flow94, %68
+    %88 = phi i64 [ %102, %Flow94 ], [ undef, %68 ]
+    %89 = phi i1 [ %103, %Flow94 ], [ false, %68 ]
+    %90 = phi i1 [ %104, %Flow94 ], [ false, %68 ]
+    %91 = phi i1 [ %105, %Flow94 ], [ false, %68 ]
+    %92 = phi i1 [ false, %Flow94 ], [ true, %68 ]
+    %93 = phi i32 [ %106, %Flow94 ], [ undef, %68 ]
+    %94 = phi i64 [ %85, %Flow94 ], [ poison, %68 ]
+    %95 = phi i64 [ %107, %Flow94 ], [ poison, %68 ]
+    %96 = phi i64 [ %108, %Flow94 ], [ poison, %68 ]
+    %97 = phi i1 [ %109, %Flow94 ], [ true, %68 ]
+    br label %Flow92, !amdgpu.uniform !12
+
+  98:                                               ; preds = %84
+    %99 = add i64 %lsr.iv11, 3
+    %100 = shl nuw i64 1, %99
+    %101 = and i64 %100, %7
+    %.fr.6 = freeze i64 %101
+    %.not.6 = icmp eq i64 %.fr.6, 0
+    br i1 %.not.6, label %110, label %Flow95, !amdgpu.uniform !12
+
+  Flow94:                                           ; preds = %Flow95, %84
+    %102 = phi i64 [ %114, %Flow95 ], [ undef, %84 ]
+    %103 = phi i1 [ %115, %Flow95 ], [ false, %84 ]
+    %104 = phi i1 [ %116, %Flow95 ], [ false, %84 ]
+    %105 = phi i1 [ false, %Flow95 ], [ true, %84 ]
+    %106 = phi i32 [ %117, %Flow95 ], [ undef, %84 ]
+    %107 = phi i64 [ %99, %Flow95 ], [ poison, %84 ]
+    %108 = phi i64 [ %118, %Flow95 ], [ poison, %84 ]
+    %109 = phi i1 [ %119, %Flow95 ], [ true, %84 ]
+    br label %Flow93, !amdgpu.uniform !12
+
+  110:                                              ; preds = %98
+    %111 = add i64 %lsr.iv11, 4
+    %112 = shl nuw i64 1, %111
+    %113 = and i64 %112, %7
+    %.fr.7 = freeze i64 %113
+    %.not.7 = icmp eq i64 %.fr.7, 0
+    br i1 %.not.7, label %120, label %Flow96, !amdgpu.uniform !12
+
+  Flow95:                                           ; preds = %Flow96, %98
+    %114 = phi i64 [ %373, %Flow96 ], [ undef, %98 ]
+    %115 = phi i1 [ %374, %Flow96 ], [ false, %98 ]
+    %116 = phi i1 [ false, %Flow96 ], [ true, %98 ]
+    %117 = phi i32 [ %375, %Flow96 ], [ undef, %98 ]
+    %118 = phi i64 [ %111, %Flow96 ], [ poison, %98 ]
+    %119 = phi i1 [ %376, %Flow96 ], [ true, %98 ]
+    br label %Flow94, !amdgpu.uniform !12
+
+  120:                                              ; preds = %110
+    %lsr.iv.next12 = add nuw nsw i64 %lsr.iv11, 8
+    %tmp14 = trunc i64 %lsr.iv.next12 to i32
+    %exitcond.not.7 = icmp eq i32 %tmp14, 67
+    br label %Flow96, !amdgpu.uniform !12
+
+  Flow86:                                           ; preds = %Flow85, %loop.exit.guard24
+    %121 = phi i32 [ %140, %Flow85 ], [ undef, %loop.exit.guard24 ]
+    %122 = phi i1 [ false, %Flow85 ], [ true, %loop.exit.guard24 ]
+    br i1 %122, label %.split10splitsplitsplitsplitsplitsplit_crit_edge, label %Flow87, !amdgpu.uniform !12
+
+  .split10splitsplitsplitsplitsplitsplit_crit_edge: ; preds = %Flow86
+    %tmp21 = trunc i64 %.lcssa118 to i32
+    br label %Flow87, !amdgpu.uniform !12
+
+  Flow84:                                           ; preds = %Flow83, %loop.exit.guard25
+    %123 = phi i32 [ %139, %Flow83 ], [ undef, %loop.exit.guard25 ]
+    %124 = phi i1 [ false, %Flow83 ], [ true, %loop.exit.guard25 ]
+    br i1 %124, label %.split10splitsplitsplitsplitsplit_crit_edge, label %Flow85, !amdgpu.uniform !12
+
+  .split10splitsplitsplitsplitsplit_crit_edge:      ; preds = %Flow84
+    %tmp20 = trunc i64 %.lcssa117 to i32
+    br label %Flow85, !amdgpu.uniform !12
+
+  Flow82:                                           ; preds = %Flow81, %loop.exit.guard26
+    %125 = phi i32 [ %138, %Flow81 ], [ undef, %loop.exit.guard26 ]
+    %126 = phi i1 [ false, %Flow81 ], [ true, %loop.exit.guard26 ]
+    br i1 %126, label %.split10splitsplitsplitsplit_crit_edge, label %Flow83, !amdgpu.uniform !12
+
+  .split10splitsplitsplitsplit_crit_edge:           ; preds = %Flow82
+    %tmp19 = trunc i64 %lsr.iv11.lcssa to i32
+    br label %Flow83, !amdgpu.uniform !12
+
+  Flow80:                                           ; preds = %Flow79, %loop.exit.guard27
+    %127 = phi i32 [ %137, %Flow79 ], [ undef, %loop.exit.guard27 ]
+    %128 = phi i1 [ false, %Flow79 ], [ true, %loop.exit.guard27 ]
+    br i1 %128, label %.split10splitsplitsplit_crit_edge, label %Flow81, !amdgpu.uniform !12
+
+  .split10splitsplitsplit_crit_edge:                ; preds = %Flow80
+    %tmp18 = trunc i64 %.lcssa116 to i32
+    br label %Flow81, !amdgpu.uniform !12
+
+  Flow78:                                           ; preds = %Flow77, %loop.exit.guard28
+    %129 = phi i32 [ %136, %Flow77 ], [ undef, %loop.exit.guard28 ]
+    %130 = phi i1 [ false, %Flow77 ], [ true, %loop.exit.guard28 ]
+    br i1 %130, label %.split10splitsplit_crit_edge, label %Flow79, !amdgpu.uniform !12
+
+  .split10splitsplit_crit_edge:                     ; preds = %Flow78
+    %tmp17 = trunc i64 %.lcssa115 to i32
+    br label %Flow79, !amdgpu.uniform !12
+
+  Flow76:                                           ; preds = %Flow75, %loop.exit.guard29
+    %131 = phi i32 [ %135, %Flow75 ], [ undef, %loop.exit.guard29 ]
+    %132 = phi i1 [ false, %Flow75 ], [ true, %loop.exit.guard29 ]
+    br i1 %132, label %.split10split_crit_edge, label %Flow77, !amdgpu.uniform !12
+
+  .split10split_crit_edge:                          ; preds = %Flow76
+    %tmp16 = trunc i64 %.lcssa114 to i32
+    br label %Flow77, !amdgpu.uniform !12
+
+  .split10_crit_edge:                               ; preds = %loop.exit.guard30
+    %tmp15 = trunc i64 %.lcssa113 to i32
+    br label %Flow75, !amdgpu.uniform !12
+
+  Flow88:                                           ; preds = %Flow87, %loop.exit.guard
+    %133 = phi i32 [ %141, %Flow87 ], [ undef, %loop.exit.guard ]
+    %134 = phi i1 [ false, %Flow87 ], [ true, %loop.exit.guard ]
+    br i1 %134, label %._crit_edge9, label %142, !amdgpu.uniform !12
+
+  ._crit_edge9:                                     ; preds = %Flow88
+    %tmp13 = trunc i64 %.lcssa112 to i32
+    br label %142, !amdgpu.uniform !12
+
+  Flow75:                                           ; preds = %.split10_crit_edge, %loop.exit.guard30
+    %135 = phi i32 [ %tmp15, %.split10_crit_edge ], [ %.lcssa119, %loop.exit.guard30 ]
+    br label %Flow76, !amdgpu.uniform !12
+
+  Flow77:                                           ; preds = %.split10split_crit_edge, %Flow76
+    %136 = phi i32 [ %tmp16, %.split10split_crit_edge ], [ %131, %Flow76 ]
+    br label %Flow78, !amdgpu.uniform !12
+
+  Flow79:                                           ; preds = %.split10splitsplit_crit_edge, %Flow78
+    %137 = phi i32 [ %tmp17, %.split10splitsplit_crit_edge ], [ %129, %Flow78 ]
+    br label %Flow80, !amdgpu.uniform !12
+
+  Flow81:                                           ; preds = %.split10splitsplitsplit_crit_edge, %Flow80
+    %138 = phi i32 [ %tmp18, %.split10splitsplitsplit_crit_edge ], [ %127, %Flow80 ]
+    br label %Flow82, !amdgpu.uniform !12
+
+  Flow83:                                           ; preds = %.split10splitsplitsplitsplit_crit_edge, %Flow82
+    %139 = phi i32 [ %tmp19, %.split10splitsplitsplitsplit_crit_edge ], [ %125, %Flow82 ]
+    br label %Flow84, !amdgpu.uniform !12
+
+  Flow85:                                           ; preds = %.split10splitsplitsplitsplitsplit_crit_edge, %Flow84
+    %140 = phi i32 [ %tmp20, %.split10splitsplitsplitsplitsplit_crit_edge ], [ %123, %Flow84 ]
+    br label %Flow86, !amdgpu.uniform !12
+
+  Flow87:                                           ; preds = %.split10splitsplitsplitsplitsplitsplit_crit_edge, %Flow86
+    %141 = phi i32 [ %tmp21, %.split10splitsplitsplitsplitsplitsplit_crit_edge ], [ %121, %Flow86 ]
+    br label %Flow88, !amdgpu.uniform !12
+
+  142:                                              ; preds = %._crit_edge9, %Flow88
+    %.032 = phi i32 [ %133, %Flow88 ], [ %tmp13, %._crit_edge9 ]
+    %143 = call i32 @llvm.amdgcn.mbcnt.lo(i32 -1, i32 0)
+    %144 = call i32 @llvm.amdgcn.mbcnt.hi(i32 -1, i32 %143)
+    %.idx = shl i32 %144, 5
+    %145 = call <4 x i32> @llvm.amdgcn.raw.buffer.load.v4i32(<4 x i32> %6, i32 %.idx, i32 0, i32 0)
+    %146 = or disjoint i32 %.idx, 16
+    %147 = call <4 x i32> @llvm.amdgcn.raw.buffer.load.v4i32(<4 x i32> %6, i32 %146, i32 0, i32 0)
+    %148 = shufflevector <4 x i32> %145, <4 x i32> %147, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
+    %149 = bitcast <8 x i32> %148 to <4 x i64>
+    %.i3 = extractelement <4 x i64> %149, i64 3
+    %.i2 = extractelement <4 x i64> %149, i64 2
+    %.i1 = extractelement <4 x i64> %149, i64 1
+    %.i0 = extractelement <4 x i64> %149, i64 0
+    %150 = trunc i64 %.i0 to i32
+    %151 = call i32 @llvm.amdgcn.readfirstlane(i32 %150)
+    %extelt.offset = lshr i64 %.i0, 32
+    %152 = trunc i64 %extelt.offset to i32
+    %153 = call i32 @llvm.amdgcn.readfirstlane(i32 %152)
+    %.upto033 = insertelement <2 x i32> poison, i32 %151, i64 0
+    %154 = insertelement <2 x i32> %.upto033, i32 %153, i64 1
+    %155 = bitcast <2 x i32> %154 to i64
+    %156 = trunc i64 %.i1 to i32
+    %157 = call i32 @llvm.amdgcn.readfirstlane(i32 %156)
+    %extelt.offset1 = lshr i64 %.i1, 32
+    %158 = trunc i64 %extelt.offset1 to i32
+    %159 = call i32 @llvm.amdgcn.readfirstlane(i32 %158)
+    %.upto035 = insertelement <2 x i32> poison, i32 %157, i64 0
+    %160 = insertelement <2 x i32> %.upto035, i32 %159, i64 1
+    %161 = bitcast <2 x i32> %160 to i64
+    %162 = trunc i64 %.i2 to i32
+    %163 = call i32 @llvm.amdgcn.readfirstlane(i32 %162)
+    %extelt.offset2 = lshr i64 %.i2, 32
+    %164 = trunc i64 %extelt.offset2 to i32
+    %165 = call i32 @llvm.amdgcn.readfirstlane(i32 %164)
+    %.upto037 = insertelement <2 x i32> poison, i32 %163, i64 0
+    %166 = insertelement <2 x i32> %.upto037, i32 %165, i64 1
+    %167 = bitcast <2 x i32> %166 to i64
+    %168 = trunc i64 %.i3 to i32
+    %169 = call i32 @llvm.amdgcn.readfirstlane(i32 %168)
+    %extelt.offset3 = lshr i64 %.i3, 32
+    %170 = trunc i64 %extelt.offset3 to i32
+    %171 = call i32 @llvm.amdgcn.readfirstlane(i32 %170)
+    %.upto039 = insertelement <2 x i32> poison, i32 %169, i64 0
+    %172 = insertelement <2 x i32> %.upto039, i32 %171, i64 1
+    %173 = bitcast <2 x i32> %172 to i64
+    %.idx56 = shl i32 %.032, 5
+    %174 = call <4 x i32> @llvm.amdgcn.raw.buffer.load.v4i32(<4 x i32> %6, i32 %.idx56, i32 0, i32 0)
+    %175 = or disjoint i32 %.idx56, 16
+    %176 = call <4 x i32> @llvm.amdgcn.raw.buffer.load.v4i32(<4 x i32> %6, i32 %175, i32 0, i32 0)
+    %177 = shufflevector <4 x i32> %174, <4 x i32> %176, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
+    %178 = bitcast <8 x i32> %177 to <4 x i64>
+    %.i316 = extractelement <4 x i64> %178, i64 3
+    %.i215 = extractelement <4 x i64> %178, i64 2
+    %.i114 = extractelement <4 x i64> %178, i64 1
+    %.i013 = extractelement <4 x i64> %178, i64 0
+    %179 = icmp eq i64 %.i013, %155
+    %180 = icmp eq i64 %.i114, %161
+    %181 = icmp eq i64 %.i215, %167
+    %182 = icmp eq i64 %.i316, %173
+    %183 = and i1 %179, %180
+    %184 = and i1 %181, %183
+    %185 = and i1 %182, %184
+    %186 = zext i1 %185 to i32
+    %187 = icmp ne i32 %.032, %144
+    %cond.freeze2 = freeze i1 %187
+    %cond.freeze2.inv = xor i1 %cond.freeze2, true
+    %188 = call { i1, i64 } @llvm.amdgcn.if.i64(i1 %cond.freeze2.inv)
+    %189 = extractvalue { i1, i64 } %188, 0
+    %190 = extractvalue { i1, i64 } %188, 1
+    br i1 %189, label %363, label %Flow73
+
+  Flow73:                                           ; preds = %363, %142
+    %191 = phi i32 [ %364, %363 ], [ undef, %142 ]
+    %192 = call { i1, i64 } @llvm.amdgcn.else.i64.i64(i64 %190)
+    %193 = extractvalue { i1, i64 } %192, 0
+    %194 = extractvalue { i1, i64 } %192, 1
+    br i1 %193, label %195, label %Flow74
+
+  195:                                              ; preds = %Flow73
+    %196 = call i64 @llvm.amdgcn.ballot.i64(i1 true)
+    br label %198, !amdgpu.uniform !12
+
+  Flow74:                                           ; preds = %332, %Flow73
+    %197 = phi i32 [ %362, %332 ], [ %191, %Flow73 ]
+    call void @llvm.amdgcn.end.cf.i64(i64 %194)
+    br label %365, !amdgpu.uniform !12
+
+  198:                                              ; preds = %195, %Flow65
+    %lsr.iv = phi i64 [ %206, %Flow65 ], [ 3, %195 ]
+    %199 = add i64 %lsr.iv, -3
+    %200 = shl nuw i64 1, %199
+    %201 = and i64 %200, %196
+    %.fr4 = freeze i64 %201
+    %.not5 = icmp eq i64 %.fr4, 0
+    br i1 %.not5, label %202, label %Flow65, !amdgpu.uniform !12
+
+  202:                                              ; preds = %198
+    %203 = add i64 %lsr.iv, -2
+    %204 = shl nuw i64 1, %203
+    %205 = and i64 %204, %196
+    %.fr4.1 = freeze i64 %205
+    %.not5.1 = icmp eq i64 %.fr4.1, 0
+    br i1 %.not5.1, label %223, label %Flow66, !amdgpu.uniform !12
+
+  Flow65:                                           ; preds = %Flow66, %198
+    %206 = phi i64 [ %227, %Flow66 ], [ undef, %198 ]
+    %207 = phi i1 [ %228, %Flow66 ], [ false, %198 ]
+    %208 = phi i1 [ %229, %Flow66 ], [ false, %198 ]
+    %209 = phi i1 [ %230, %Flow66 ], [ false, %198 ]
+    %210 = phi i1 [ %231, %Flow66 ], [ false, %198 ]
+    %211 = phi i1 [ %232, %Flow66 ], [ false, %198 ]
+    %212 = phi i1 [ %233, %Flow66 ], [ false, %198 ]
+    %213 = phi i1 [ %234, %Flow66 ], [ false, %198 ]
+    %214 = phi i1 [ false, %Flow66 ], [ true, %198 ]
+    %215 = phi i32 [ %235, %Flow66 ], [ undef, %198 ]
+    %216 = phi i64 [ %203, %Flow66 ], [ poison, %198 ]
+    %217 = phi i64 [ %236, %Flow66 ], [ poison, %198 ]
+    %218 = phi i64 [ %237, %Flow66 ], [ poison, %198 ]
+    %219 = phi i64 [ %238, %Flow66 ], [ poison, %198 ]
+    %220 = phi i64 [ %239, %Flow66 ], [ poison, %198 ]
+    %221 = phi i64 [ %240, %Flow66 ], [ poison, %198 ]
+    %222 = phi i1 [ %241, %Flow66 ], [ true, %198 ]
+    br i1 %222, label %loop.exit.guard37, label %198, !amdgpu.uniform !12
+
+  223:                                              ; preds = %202
+    %224 = add i64 %lsr.iv, -1
+    %225 = shl nuw i64 1, %224
+    %226 = and i64 %225, %196
+    %.fr4.2 = freeze i64 %226
+    %.not5.2 = icmp eq i64 %.fr4.2, 0
+    br i1 %.not5.2, label %242, label %Flow67, !amdgpu.uniform !12
+
+  Flow66:                                           ; preds = %Flow67, %202
+    %227 = phi i64 [ %245, %Flow67 ], [ undef, %202 ]
+    %228 = phi i1 [ %246, %Flow67 ], [ false, %202 ]
+    %229 = phi i1 [ %247, %Flow67 ], [ false, %202 ]
+    %230 = phi i1 [ %248, %Flow67 ], [ false, %202 ]
+    %231 = phi i1 [ %249, %Flow67 ], [ false, %202 ]
+    %232 = phi i1 [ %250, %Flow67 ], [ false, %202 ]
+    %233 = phi i1 [ %251, %Flow67 ], [ false, %202 ]
+    %234 = phi i1 [ false, %Flow67 ], [ true, %202 ]
+    %235 = phi i32 [ %252, %Flow67 ], [ undef, %202 ]
+    %236 = phi i64 [ %224, %Flow67 ], [ poison, %202 ]
+    %237 = phi i64 [ %253, %Flow67 ], [ poison, %202 ]
+    %238 = phi i64 [ %254, %Flow67 ], [ poison, %202 ]
+    %239 = phi i64 [ %255, %Flow67 ], [ poison, %202 ]
+    %240 = phi i64 [ %256, %Flow67 ], [ poison, %202 ]
+    %241 = phi i1 [ %257, %Flow67 ], [ true, %202 ]
+    br label %Flow65, !amdgpu.uniform !12
+
+  242:                                              ; preds = %223
+    %243 = shl nuw i64 1, %lsr.iv
+    %244 = and i64 %243, %196
+    %.fr4.3 = freeze i64 %244
+    %.not5.3 = icmp eq i64 %.fr4.3, 0
+    br i1 %.not5.3, label %258, label %Flow68, !amdgpu.uniform !12
+
+  Flow67:                                           ; preds = %Flow68, %223
+    %245 = phi i64 [ %262, %Flow68 ], [ undef, %223 ]
+    %246 = phi i1 [ %263, %Flow68 ], [ false, %223 ]
+    %247 = phi i1 [ %264, %Flow68 ], [ false, %223 ]
+    %248 = phi i1 [ %265, %Flow68 ], [ false, %223 ]
+    %249 = phi i1 [ %266, %Flow68 ], [ false, %223 ]
+    %250 = phi i1 [ %267, %Flow68 ], [ false, %223 ]
+    %251 = phi i1 [ false, %Flow68 ], [ true, %223 ]
+    %252 = phi i32 [ %268, %Flow68 ], [ undef, %223 ]
+    %253 = phi i64 [ %269, %Flow68 ], [ poison, %223 ]
+    %254 = phi i64 [ %270, %Flow68 ], [ poison, %223 ]
+    %255 = phi i64 [ %271, %Flow68 ], [ poison, %223 ]
+    %256 = phi i64 [ %272, %Flow68 ], [ poison, %223 ]
+    %257 = phi i1 [ %273, %Flow68 ], [ true, %223 ]
+    br label %Flow66, !amdgpu.uniform !12
+
+  258:                                              ; preds = %242
+    %259 = add i64 %lsr.iv, 1
+    %260 = shl nuw i64 1, %259
+    %261 = and i64 %260, %196
+    %.fr4.4 = freeze i64 %261
+    %.not5.4 = icmp eq i64 %.fr4.4, 0
+    br i1 %.not5.4, label %274, label %Flow69, !amdgpu.uniform !12
+
+  Flow68:                                           ; preds = %Flow69, %242
+    %262 = phi i64 [ %278, %Flow69 ], [ undef, %242 ]
+    %263 = phi i1 [ %279, %Flow69 ], [ false, %242 ]
+    %264 = phi i1 [ %280, %Flow69 ], [ false, %242 ]
+    %265 = phi i1 [ %281, %Flow69 ], [ false, %242 ]
+    %266 = phi i1 [ %282, %Flow69 ], [ false, %242 ]
+    %267 = phi i1 [ false, %Flow69 ], [ true, %242 ]
+    %268 = phi i32 [ %283, %Flow69 ], [ undef, %242 ]
+    %269 = phi i64 [ %259, %Flow69 ], [ poison, %242 ]
+    %270 = phi i64 [ %284, %Flow69 ], [ poison, %242 ]
+    %271 = phi i64 [ %285, %Flow69 ], [ poison, %242 ]
+    %272 = phi i64 [ %286, %Flow69 ], [ poison, %242 ]
+    %273 = phi i1 [ %287, %Flow69 ], [ true, %242 ]
+    br label %Flow67, !amdgpu.uniform !12
+
+  274:                                              ; preds = %258
+    %275 = add i64 %lsr.iv, 2
+    %276 = shl nuw i64 1, %275
+    %277 = and i64 %276, %196
+    %.fr4.5 = freeze i64 %277
+    %.not5.5 = icmp eq i64 %.fr4.5, 0
+    br i1 %.not5.5, label %288, label %Flow70, !amdgpu.uniform !12
+
+  Flow69:                                           ; preds = %Flow70, %258
+    %278 = phi i64 [ %292, %Flow70 ], [ undef, %258 ]
+    %279 = phi i1 [ %293, %Flow70 ], [ false, %258 ]
+    %280 = phi i1 [ %294, %Flow70 ], [ false, %258 ]
+    %281 = phi i1 [ %295, %Flow70 ], [ false, %258 ]
+    %282 = phi i1 [ false, %Flow70 ], [ true, %258 ]
+    %283 = phi i32 [ %296, %Flow70 ], [ undef, %258 ]
+    %284 = phi i64 [ %275, %Flow70 ], [ poison, %258 ]
+    %285 = phi i64 [ %297, %Flow70 ], [ poison, %258 ]
+    %286 = phi i64 [ %298, %Flow70 ], [ poison, %258 ]
+    %287 = phi i1 [ %299, %Flow70 ], [ true, %258 ]
+    br label %Flow68, !amdgpu.uniform !12
+
+  288:                                              ; preds = %274
+    %289 = add i64 %lsr.iv, 3
+    %290 = shl nuw i64 1, %289
+    %291 = and i64 %290, %196
+    %.fr4.6 = freeze i64 %291
+    %.not5.6 = icmp eq i64 %.fr4.6, 0
+    br i1 %.not5.6, label %300, label %Flow71, !amdgpu.uniform !12
+
+  Flow70:                                           ; preds = %Flow71, %274
+    %292 = phi i64 [ %304, %Flow71 ], [ undef, %274 ]
+    %293 = phi i1 [ %305, %Flow71 ], [ false, %274 ]
+    %294 = phi i1 [ %306, %Flow71 ], [ false, %274 ]
+    %295 = phi i1 [ false, %Flow71 ], [ true, %274 ]
+    %296 = phi i32 [ %307, %Flow71 ], [ undef, %274 ]
+    %297 = phi i64 [ %289, %Flow71 ], [ poison, %274 ]
+    %298 = phi i64 [ %308, %Flow71 ], [ poison, %274 ]
+    %299 = phi i1 [ %309, %Flow71 ], [ true, %274 ]
+    br label %Flow69, !amdgpu.uniform !12
+
+  300:                                              ; preds = %288
+    %301 = add i64 %lsr.iv, 4
+    %302 = shl nuw i64 1, %301
+    %303 = and i64 %302, %196
+    %.fr4.7 = freeze i64 %303
+    %.not5.7 = icmp eq i64 %.fr4.7, 0
+    br i1 %.not5.7, label %310, label %Flow72, !amdgpu.uniform !12
+
+  Flow71:                                           ; preds = %Flow72, %288
+    %304 = phi i64 [ %377, %Flow72 ], [ undef, %288 ]
+    %305 = phi i1 [ %378, %Flow72 ], [ false, %288 ]
+    %306 = phi i1 [ false, %Flow72 ], [ true, %288 ]
+    %307 = phi i32 [ %379, %Flow72 ], [ undef, %288 ]
+    %308 = phi i64 [ %301, %Flow72 ], [ poison, %288 ]
+    %309 = phi i1 [ %380, %Flow72 ], [ true, %288 ]
+    br label %Flow70, !amdgpu.uniform !12
+
+  310:                                              ; preds = %300
+    %lsr.iv.next = add nuw nsw i64 %lsr.iv, 8
+    %tmp1 = trunc i64 %lsr.iv.next to i32
+    %exitcond12.not.7 = icmp eq i32 %tmp1, 67
+    br label %Flow72, !amdgpu.uniform !12
+
+  Flow62:                                           ; preds = %Flow61, %loop.exit.guard38
+    %311 = phi i32 [ %330, %Flow61 ], [ undef, %loop.exit.guard38 ]
+    %312 = phi i1 [ false, %Flow61 ], [ true, %loop.exit.guard38 ]
+    br i1 %312, label %.splitsplitsplitsplitsplitsplitsplit_crit_edge, label %Flow63, !amdgpu.uniform !12
+
+  .splitsplitsplitsplitsplitsplitsplit_crit_edge:   ; preds = %Flow62
+    %tmp8 = trunc i64 %.lcssa102 to i32
+    br label %Flow63, !amdgpu.uniform !12
+
+  Flow60:                                           ; preds = %Flow59, %loop.exit.guard39
+    %313 = phi i32 [ %329, %Flow59 ], [ undef, %loop.exit.guard39 ]
+    %314 = phi i1 [ false, %Flow59 ], [ true, %loop.exit.guard39 ]
+    br i1 %314, label %.splitsplitsplitsplitsplitsplit_crit_edge, label %Flow61, !amdgpu.uniform !12
+
+  .splitsplitsplitsplitsplitsplit_crit_edge:        ; preds = %Flow60
+    %tmp7 = trunc i64 %.lcssa101 to i32
+    br label %Flow61, !amdgpu.uniform !12
+
+  Flow58:                                           ; preds = %Flow57, %loop.exit.guard40
+    %315 = phi i32 [ %328, %Flow57 ], [ undef, %loop.exit.guard40 ]
+    %316 = phi i1 [ false, %Flow57 ], [ true, %loop.exit.guard40 ]
+    br i1 %316, label %.splitsplitsplitsplitsplit_crit_edge, label %Flow59, !amdgpu.uniform !12
+
+  .splitsplitsplitsplitsplit_crit_edge:             ; preds = %Flow58
+    %tmp6 = trunc i64 %lsr.iv.lcssa to i32
+    br label %Flow59, !amdgpu.uniform !12
+
+  Flow56:                                           ; preds = %Flow55, %loop.exit.guard41
+    %317 = phi i32 [ %327, %Flow55 ], [ undef, %loop.exit.guard41 ]
+    %318 = phi i1 [ false, %Flow55 ], [ true, %loop.exit.guard41 ]
+    br i1 %318, label %.splitsplitsplitsplit_crit_edge, label %Flow57, !amdgpu.uniform !12
+
+  .splitsplitsplitsplit_crit_edge:                  ; preds = %Flow56
+    %tmp5 = trunc i64 %.lcssa100 to i32
+    br label %Flow57, !amdgpu.uniform !12
+
+  Flow54:                                           ; preds = %Flow53, %loop.exit.guard42
+    %319 = phi i32 [ %326, %Flow53 ], [ undef, %loop.exit.guard42 ]
+    %320 = phi i1 [ false, %Flow53 ], [ true, %loop.exit.guard42 ]
+    br i1 %320, label %.splitsplitsplit_crit_edge, label %Flow55, !amdgpu.uniform !12
+
+  .splitsplitsplit_crit_edge:                       ; preds = %Flow54
+    %tmp4 = trunc i64 %.lcssa99 to i32
+    br label %Flow55, !amdgpu.uniform !12
+
+  Flow52:                                           ; preds = %Flow, %loop.exit.guard43
+    %321 = phi i32 [ %325, %Flow ], [ undef, %loop.exit.guard43 ]
+    %322 = phi i1 [ false, %Flow ], [ true, %loop.exit.guard43 ]
+    br i1 %322, label %.splitsplit_crit_edge, label %Flow53, !amdgpu.uniform !12
+
+  .splitsplit_crit_edge:                            ; preds = %Flow52
+    %tmp3 = trunc i64 %.lcssa98 to i32
+    br label %Flow53, !amdgpu.uniform !12
+
+  .split_crit_edge:                                 ; preds = %loop.exit.guard44
+    %tmp2 = trunc i64 %.lcssa97 to i32
+    br label %Flow, !amdgpu.uniform !12
+
+  Flow64:                                           ; preds = %Flow63, %loop.exit.guard37
+    %323 = phi i32 [ %331, %Flow63 ], [ undef, %loop.exit.guard37 ]
+    %324 = phi i1 [ false, %Flow63 ], [ true, %loop.exit.guard37 ]
+    br i1 %324, label %._crit_edge, label %332, !amdgpu.uniform !12
+
+  ._crit_edge:                                      ; preds = %Flow64
+    %tmp = trunc i64 %.lcssa to i32
+    br label %332, !amdgpu.uniform !12
+
+  Flow:                                             ; preds = %.split_crit_edge, %loop.exit.guard44
+    %325 = phi i32 [ %tmp2, %.split_crit_edge ], [ %.lcssa103, %loop.exit.guard44 ]
+    br label %Flow52, !amdgpu.uniform !12
+
+  Flow53:                                           ; preds = %.splitsplit_crit_edge, %Flow52
+    %326 = phi i32 [ %tmp3, %.splitsplit_crit_edge ], [ %321, %Flow52 ]
+    br label %Flow54, !amdgpu.uniform !12
+
+  Flow55:                                           ; preds = %.splitsplitsplit_crit_edge, %Flow54
+    %327 = phi i32 [ %tmp4, %.splitsplitsplit_crit_edge ], [ %319, %Flow54 ]
+    br label %Flow56, !amdgpu.uniform !12
+
+  Flow57:                                           ; preds = %.splitsplitsplitsplit_crit_edge, %Flow56
+    %328 = phi i32 [ %tmp5, %.splitsplitsplitsplit_crit_edge ], [ %317, %Flow56 ]
+    br label %Flow58, !amdgpu.uniform !12
+
+  Flow59:                                           ; preds = %.splitsplitsplitsplitsplit_crit_edge, %Flow58
+    %329 = phi i32 [ %tmp6, %.splitsplitsplitsplitsplit_crit_edge ], [ %315, %Flow58 ]
+    br label %Flow60, !amdgpu.uniform !12
+
+  Flow61:                                           ; preds = %.splitsplitsplitsplitsplitsplit_crit_edge, %Flow60
+    %330 = phi i32 [ %tmp7, %.splitsplitsplitsplitsplitsplit_crit_edge ], [ %313, %Flow60 ]
+    br label %Flow62, !amdgpu.uniform !12
+
+  Flow63:                                           ; preds = %.splitsplitsplitsplitsplitsplitsplit_crit_edge, %Flow62
+    %331 = phi i32 [ %tmp8, %.splitsplitsplitsplitsplitsplitsplit_crit_edge ], [ %311, %Flow62 ]
+    br label %Flow64, !amdgpu.uniform !12
+
+  332:                                              ; preds = %._crit_edge, %Flow64
+    %.1 = phi i32 [ %tmp, %._crit_edge ], [ %323, %Flow64 ]
+    %333 = call i32 @llvm.amdgcn.readfirstlane(i32 %150)
+    %334 = call i32 @llvm.amdgcn.readfirstlane(i32 %152)
+    %.upto041 = insertelement <2 x i32> poison, i32 %333, i64 0
+    %335 = insertelement <2 x i32> %.upto041, i32 %334, i64 1
+    %336 = bitcast <2 x i32> %335 to i64
+    %337 = call i32 @llvm.amdgcn.readfirstlane(i32 %156)
+    %338 = call i32 @llvm.amdgcn.readfirstlane(i32 %158)
+    %.upto043 = insertelement <2 x i32> poison, i32 %337, i64 0
+    %339 = insertelement <2 x i32> %.upto043, i32 %338, i64 1
+    %340 = bitcast <2 x i32> %339 to i64
+    %341 = call i32 @llvm.amdgcn.readfirstlane(i32 %162)
+    %342 = call i32 @llvm.amdgcn.readfirstlane(i32 %164)
+    %.upto045 = insertelement <2 x i32> poison, i32 %341, i64 0
+    %343 = insertelement <2 x i32> %.upto045, i32 %342, i64 1
+    %344 = bitcast <2 x i32> %343 to i64
+    %345 = call i32 @llvm.amdgcn.readfirstlane(i32 %168)
+    %346 = call i32 @llvm.amdgcn.readfirstlane(i32 %170)
+    %.upto047 = insertelement <2 x i32> poison, i32 %345, i64 0
+    %347 = insertelement <2 x i32> %.upto047, i32 %346, i64 1
+    %348 = bitcast <2 x i32> %347 to i64
+    %.idx57 = shl i32 %.1, 5
+    %349 = call <4 x i32> @llvm.amdgcn.raw.buffer.load.v4i32(<4 x i32> %6, i32 %.idx57, i32 0, i32 0)
+    %350 = or disjoint i32 %.idx57, 16
+    %351 = call <4 x i32> @llvm.amdgcn.raw.buffer.load.v4i32(<4 x i32> %6, i32 %350, i32 0, i32 0)
+    %352 = shufflevector <4 x i32> %349, <4 x i32> %351, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
+    %353 = bitcast <8 x i32> %352 to <4 x i64>
+    %.i320 = extractelement <4 x i64> %353, i64 3
+    %.i219 = extractelement <4 x i64> %353, i64 2
+    %.i118 = extractelement <4 x i64> %353, i64 1
+    %.i017 = extractelement <4 x i64> %353, i64 0
+    %354 = icmp eq i64 %.i017, %336
+    %355 = icmp eq i64 %.i118, %340
+    %356 = icmp eq i64 %.i219, %344
+    %357 = icmp eq i64 %.i320, %348
+    %358 = and i1 %354, %355
+    %359 = and i1 %356, %358
+    %360 = and i1 %357, %359
+    %361 = select i1 %360, i32 2, i32 0
+    %362 = or disjoint i32 %361, %186
+    br label %Flow74, !amdgpu.uniform !12
+
+  363:                                              ; preds = %142
+    %364 = or disjoint i32 %186, 2
+    br label %Flow73, !amdgpu.uniform !12
+
+  365:                                              ; preds = %Flow74
+    %366 = load <2 x i32>, ptr addrspace(4) %numWorkgroupsPtr, align 16, !invariant.load !12
+    %.ii022 = extractelement <2 x i32> %366, i32 0
+    %.ii123 = extractelement <2 x i32> %366, i32 1
+    %367 = inttoptr i64 %3 to ptr addrspace(4), !amdgpu.uniform !12
+    %WorkgroupId.i2 = extractelement <3 x i32> %WorkgroupId, i64 2
+    %WorkgroupId.i1 = extractelement <3 x i32> %WorkgroupId, i64 1
+    %WorkgroupId.i0 = extractelement <3 x i32> %WorkgroupId, i64 0
+    %LocalInvocationId.i0 = extractelement <3 x i32> %LocalInvocationId, i64 0
+    %.i021 = shl i32 %WorkgroupId.i0, 6
+    %.i024 = add i32 %LocalInvocationId.i0, %.i021
+    %.i028 = shl i32 %.ii022, 6
+    %368 = mul i32 %.ii123, %WorkgroupId.i2
+    %369 = add i32 %368, %WorkgroupId.i1
+    %370 = mul i32 %369, %.i028
+    %371 = add i32 %370, %.i024
+    %372 = load <4 x i32>, ptr addrspace(4) %367, align 16
+    %.idx58 = shl i32 %371, 2
+    call void @llvm.amdgcn.raw.buffer.store.i32(i32 %197, <4 x i32> %372, i32 %.idx58, i32 0, i32 0)
+    ret void
+
+  Flow96:                                           ; preds = %120, %110
+    %373 = phi i64 [ %lsr.iv.next12, %120 ], [ undef, %110 ]
+    %374 = phi i1 [ false, %120 ], [ true, %110 ]
+    %375 = phi i32 [ 0, %120 ], [ undef, %110 ]
+    %376 = phi i1 [ %exitcond.not.7, %120 ], [ true, %110 ]
+    br label %Flow95, !amdgpu.uniform !12
+
+  loop.exit.guard:                                  ; preds = %Flow89
+    %.lcssa127 = phi i1 [ %17, %Flow89 ]
+    %.lcssa126 = phi i1 [ %18, %Flow89 ]
+    %.lcssa125 = phi i1 [ %19, %Flow89 ]
+    %.lcssa124 = phi i1 [ %20, %Flow89 ]
+    %.lcssa123 = phi i1 [ %21, %Flow89 ]
+    %.lcssa122 = phi i1 [ %22, %Flow89 ]
+    %.lcssa121 = phi i1 [ %23, %Flow89 ]
+    %.lcssa120 = phi i1 [ %24, %Flow89 ]
+    %.lcssa119 = phi i32 [ %25, %Flow89 ]
+    %.lcssa118 = phi i64 [ %26, %Flow89 ]
+    %.lcssa117 = phi i64 [ %27, %Flow89 ]
+    %.lcssa116 = phi i64 [ %28, %Flow89 ]
+    %.lcssa115 = phi i64 [ %29, %Flow89 ]
+    %.lcssa114 = phi i64 [ %30, %Flow89 ]
+    %.lcssa113 = phi i64 [ %31, %Flow89 ]
+    %lsr.iv11.lcssa = phi i64 [ %lsr.iv11, %Flow89 ]
+    %.lcssa112 = phi i64 [ %9, %Flow89 ]
+    %Guard.._crit_edge9.inv = xor i1 %.lcssa120, true
+    %Guard..split10splitsplitsplitsplitsplitsplit_crit_edge.inv = xor i1 %.lcssa121, true
+    %Guard..split10splitsplitsplitsplitsplit_crit_edge.inv = xor i1 %.lcssa122, true
+    %Guard..split10splitsplitsplitsplit_crit_edge.inv = xor i1 %.lcssa123, true
+    %Guard..split10splitsplitsplit_crit_edge.inv = xor i1 %.lcssa124, true
+    %Guard..split10splitsplit_crit_edge.inv = xor i1 %.lcssa125, true
+    %Guard..split10split_crit_edge.inv = xor i1 %.lcssa126, true
+    br i1 %Guard.._crit_edge9.inv, label %loop.exit.guard24, label %Flow88, !amdgpu.uniform !12
+
+  loop.exit.guard24:                                ; preds = %loop.exit.guard
+    br i1 %Guard..split10splitsplitsplitsplitsplitsplit_crit_edge.inv, label %loop.exit.guard25, label %Flow86, !amdgpu.uniform !12
+
+  loop.exit.guard25:                                ; preds = %loop.exit.guard24
+    br i1 %Guard..split10splitsplitsplitsplitsplit_crit_edge.inv, label %loop.exit.guard26, label %Flow84, !amdgpu.uniform !12
+
+  loop.exit.guard26:                                ; preds = %loop.exit.guard25
+    br i1 %Guard..split10splitsplitsplitsplit_crit_edge.inv, label %loop.exit.guard27, label %Flow82, !amdgpu.uniform !12
+
+  loop.exit.guard27:                                ; preds = %loop.exit.guard26
+    br i1 %Guard..split10splitsplitsplit_crit_edge.inv, label %loop.exit.guard28, label %Flow80, !amdgpu.uniform !12
+
+  loop.exit.guard28:                                ; preds = %loop.exit.guard27
+    br i1 %Guard..split10splitsplit_crit_edge.inv, label %loop.exit.guard29, label %Flow78, !amdgpu.uniform !12
+
+  loop.exit.guard29:                                ; preds = %loop.exit.guard28
+    br i1 %Guard..split10split_crit_edge.inv, label %loop.exit.guard30, label %Flow76, !amdgpu.uniform !12
+
+  loop.exit.guard30:                                ; preds = %loop.exit.guard29
+    br i1 %.lcssa127, label %.split10_crit_edge, label %Flow75, !amdgpu.uniform !12
+
+  Flow72:                                           ; preds = %310, %300
+    %377 = phi i64 [ %lsr.iv.next, %310 ], [ undef, %300 ]
+    %378 = phi i1 [ false, %310 ], [ true, %300 ]
+    %379 = phi i32 [ %.032, %310 ], [ undef, %300 ]
+    %380 = phi i1 [ %exitcond12.not.7, %310 ], [ true, %300 ]
+    br label %Flow71, !amdgpu.uniform !12
+
+  loop.exit.guard37:                                ; preds = %Flow65
+    %.lcssa111 = phi i1 [ %207, %Flow65 ]
+    %.lcssa110 = phi i1 [ %208, %Flow65 ]
+    %.lcssa109 = phi i1 [ %209, %Flow65 ]
+    %.lcssa108 = phi i1 [ %210, %Flow65 ]
+    %.lcssa107 = phi i1 [ %211, %Flow65 ]
+    %.lcssa106 = phi i1 [ %212, %Flow65 ]
+    %.lcssa105 = phi i1 [ %213, %Flow65 ]
+    %.lcssa104 = phi i1 [ %214, %Flow65 ]
+    %.lcssa103 = phi i32 [ %215, %Flow65 ]
+    %.lcssa102 = phi i64 [ %216, %Flow65 ]
+    %.lcssa101 = phi i64 [ %217, %Flow65 ]
+    %.lcssa100 = phi i64 [ %218, %Flow65 ]
+    %.lcssa99 = phi i64 [ %219, %Flow65 ]
+    %.lcssa98 = phi i64 [ %220, %Flow65 ]
+    %.lcssa97 = phi i64 [ %221, %Flow65 ]
+    %lsr.iv.lcssa = phi i64 [ %lsr.iv, %Flow65 ]
+    %.lcssa = phi i64 [ %199, %Flow65 ]
+    %Guard.._crit_edge.inv = xor i1 %.lcssa104, true
+    %Guard..splitsplitsplitsplitsplitsplitsplit_crit_edge.inv = xor i1 %.lcssa105, true
+    %Guard..splitsplitsplitsplitsplitsplit_crit_edge.inv = xor i1 %.lcssa106, true
+    %Guard..splitsplitsplitsplitsplit_crit_edge.inv = xor i1 %.lcssa107, true
+    %Guard..splitsplitsplitsplit_crit_edge.inv = xor i1 %.lcssa108, true
+    %Guard..splitsplitsplit_crit_edge.inv = xor i1 %.lcssa109, true
+    %Guard..splitsplit_crit_edge.inv = xor i1 %.lcssa110, true
+    br i1 %Guard.._crit_edge.inv, label %loop.exit.guard38, label %Flow64, !amdgpu.uniform !12
+
+  loop.exit.guard38:                                ; preds = %loop.exit.guard37
+    br i1 %Guard..splitsplitsplitsplitsplitsplitsplit_crit_edge.inv, label %loop.exit.guard39, label %Flow62, !amdgpu.uniform !12
+
+  loop.exit.guard39:                                ; preds = %loop.exit.guard38
+    br i1 %Guard..splitsplitsplitsplitsplitsplit_crit_edge.inv, label %loop.exit.guard40, label %Flow60, !amdgpu.uniform !12
+
+  loop.exit.guard40:                                ; preds = %loop.exit.guard39
+    br i1 %Guard..splitsplitsplitsplitsplit_crit_edge.inv, label %loop.exit.guard41, label %Flow58, !amdgpu.uniform !12
+
+  loop.exit.guard41:                                ; preds = %loop.exit.guard40
+    br i1 %Guard..splitsplitsplitsplit_crit_edge.inv, label %loop.exit.guard42, label %Flow56, !amdgpu.uniform !12
+
+  loop.exit.guard42:                                ; preds = %loop.exit.guard41
+    br i1 %Guard..splitsplitsplit_crit_edge.inv, label %loop.exit.guard43, label %Flow54, !amdgpu.uniform !12
+
+  loop.exit.guard43:                                ; preds = %loop.exit.guard42
+    br i1 %Guard..splitsplit_crit_edge.inv, label %loop.exit.guard44, label %Flow52, !amdgpu.uniform !12
+
+  loop.exit.guard44:                                ; preds = %loop.exit.guard43
+    br i1 %.lcssa111, label %.split_crit_edge, label %Flow, !amdgpu.uniform !12
+  }
+
+  declare i64 @llvm.amdgcn.ballot.i64(i1) #1
+
+  declare i32 @llvm.amdgcn.readfirstlane(i32) #1
+
+  declare i32 @llvm.amdgcn.mbcnt.lo(i32, i32) #2
+
+  declare i32 @llvm.amdgcn.mbcnt.hi(i32, i32) #2
+
+  declare i64 @llvm.amdgcn.s.getpc() #3
+
+  declare { ptr addrspace(8), i32 } @lgc.buffer.desc.to.ptr(<4 x i32>) #4
+
+  declare <4 x i32> @llvm.amdgcn.raw.buffer.load.v4i32(<4 x i32>, i32, i32, i32 immarg) #5
+
+  declare void @llvm.amdgcn.raw.buffer.store.i32(i32, <4 x i32>, i32, i32, i32 immarg) #6
+
+  declare { i1, i64 } @llvm.amdgcn.if.i64(i1) #7
+
+  declare { i1, i64 } @llvm.amdgcn.else.i64.i64(i64) #7
+
+  declare i64 @llvm.amdgcn.if.break.i64(i1, i64) #8
+
+  declare i1 @llvm.amdgcn.loop.i64(i64) #7
+
+  declare void @llvm.amdgcn.end.cf.i64(i64) #7
+
+  attributes #0 = { nounwind memory(readwrite) "amdgpu-flat-work-group-size"="64,64" "amdgpu-memory-bound"="false" "amdgpu-no-agpr" "amdgpu-prealloc-sgpr-spill-vgprs" "amdgpu-unroll-threshold"="700" "amdgpu-wave-limiter"="false" "amdgpu-work-group-info-arg-no"="4" "denormal-fp-math-f32"="preserve-sign" "target-cpu"="gfx1010" "target-features"=",+DumpCode,+wavefrontsize64,+cumode,-xnack" "uniform-work-group-size"="false" }
+  attributes #1 = { convergent nocallback nofree nounwind willreturn memory(none) "target-cpu"="gfx1010" }
+  attributes #2 = { nocallback nofree nosync nounwind willreturn memory(none) "target-cpu"="gfx1010" }
+  attributes #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) "target-cpu"="gfx1010" }
+  attributes #4 = { nounwind willreturn memory(none) "amdgpu-waves-per-eu"="8,20" "target-cpu"="gfx1010" "uniform-work-group-size"="false" }
+  attributes #5 = { nocallback nofree nosync nounwind willreturn memory(read) "target-cpu"="gfx1010" }
+  attributes #6 = { nocallback nofree nosync nounwind willreturn memory(write) "target-cpu"="gfx1010" }
+  attributes #7 = { convergent nocallback nofree nounwind willreturn }
+  attributes #8 = { convergent nocallback nofree nounwind willreturn memory(none) }
+
+  !llpc.shader.mode.CS = !{!0}
+  !llpc.compute.mode = !{!1}
+  !lgc.client = !{!2}
+  !lgc.options = !{!3}
+  !lgc.options.CS = !{!4}
+  !lgc.user.data.nodes = !{!5, !6, !7, !8}
+  !amdgpu.pal.metadata.msgpack = !{!9}
+
+  !0 = !{i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1}
+  !1 = !{i32 64, i32 1, i32 1}
+  !2 = !{!"Vulkan"}
+  !3 = !{i32 -1667310976, i32 -183057460, i32 1968346926, i32 901637131, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 0, i32 0, i32 1, i32 0, i32 0, i32 -1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 16777216}
+  !4 = !{i32 1313490564, i32 -672444768, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 64, i32 0, i32 0, i32 3, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 20, i32 1800}
+  !5 = !{!"StreamOutTableVaPtr", i32 11, i32 2, i32 2, i32 1, i32 0}
+  !6 = !{!"DescriptorTableVaPtr", i32 7, i32 128, i32 3, i32 1, i32 2}
+  !7 = !{!"DescriptorBuffer", i32 6, i32 128, i32 0, i32 4, i64 0, i32 0, i32 4}
+  !8 = !{!"DescriptorBuffer", i32 6, i32 128, i32 4, i32 4, i64 0, i32 1, i32 4}
+  !9 = !{!"\82\B0amdpal.pipelines\91\83\B0.spill_threshold\CD\FF\FF\B0.user_data_limit\00\AF.xgl_cache_info\82\B3.128_bit_cache_hash\92\CF{\B8\A2N\FE\D4\1CV\CFp=&'\E4\D5\B8\F2\AD.llpc_version\A471.3\AEamdpal.version\92\03\00"}
+  !10 = !{i32 5}
+  !11 = !{i32 7}
+  !12 = !{}
+
+...
+---
+name:            _amdgpu_cs_main
+alignment:       1
+exposesReturnsTwice: false
+legalized:       true
+regBankSelected: true
+selected:        true
+failedISel:      false
+tracksRegLiveness: true
+hasWinCFI:       false
+callsEHReturn:   false
+callsUnwindInit: false
+hasEHCatchret:   false
+hasEHScopes:     false
+hasEHFunclets:   false
+isOutlined:      false
+debugInstrRef:   false
+failsVerification: false
+tracksDebugUserValues: false
+registers:
+  - { id: 0, class: _, preferred-register: '' }
+  - { id: 1, class: sreg_64, preferred-register: '' }
+  - { id: 2, class: sreg_32_xexec_hi_and_sreg_32_xm0, preferred-register: '' }
+  - { id: 3, class: _, preferred-register: '' }
+  - { id: 4, class: _, preferred-register: '' }
+  - { id: 5, class: _, preferred-register: '' }
+  - { id: 6, class: sreg_32, preferred-register: '' }
+  - { id: 7, class: sreg_32, preferred-register: '' }
+  - { id: 8, class: sreg_32, preferred-register: '' }
+  - { id: 9, class: sreg_32, preferred-register: '' }
+  - { id: 10, class: sreg_32, preferred-register: '' }
+  - { id: 11, class: vgpr_32, preferred-register: '' }
+  - { id: 12, class: _, preferred-register: '' }
+  - { id: 13, class: _, preferred-register: '' }
+  - { id: 14, class: sgpr_32, preferred-register: '' }
+  - { id: 15, class: sreg_64, preferred-register: '' }
+  - { id: 16, class: sreg_64, preferred-register: '' }
+  - { id: 17, class: sreg_64, preferred-register: '' }
+  - { id: 18, class: sreg_64, preferred-register: '' }
+  - { id: 19, class: sreg_64, preferred-register: '' }
+  - { id: 20, class: sreg_64, preferred-register: '' }
+  - { id: 21, class: sgpr, preferred-register: '' }
+  - { id: 22, class: sgpr, preferred-register: '' }
+  - { id: 23, class: sgpr_128, preferred-register: '' }
+  - { id: 24, class: sreg_64, preferred-register: '' }
+  - { id: 25, class: sgpr, preferred-register: '' }
+  - { id: 26, class: sreg_64, preferred-register: '' }
+  - { id: 27, class: _, preferred-register: '' }
+  - { id: 28, class: sreg_64, preferred-register: '' }
+  - { id: 29, class: _, preferred-register: '' }
+  - { id: 30, class: sreg_64, preferred-register: '' }
+  - { id: 31, class: sreg_64, preferred-register: '' }
+  - { id: 32, class: sreg_64, preferred-register: '' }
+  - { id: 33, class: _, preferred-register: '' }
+  - { id: 34, class: sgpr, preferred-register: '' }
+  - { id: 35, class: _, preferred-register: '' }
+  - { id: 36, class: sreg_64, preferred-register: '' }
+  - { id: 37, class: sreg_64, preferred-register: '' }
+  - { id: 38, class: sreg_64, preferred-register: '' }
+  - { id: 39, class: sreg_64, preferred-register: '' }
+  - { id: 40, class: sgpr, preferred-register: '' }
+  - { id: 41, class: _, preferred-register: '' }
+  - { id: 42, class: sreg_64, preferred-register: '' }
+  - { id: 43, class: sreg_64, preferred-register: '' }
+  - { id: 44, class: sreg_64, preferred-register: '' }
+  - { id: 45, class: sreg_64, preferred-register: '' }
+  - { id: 46, class: sgpr, preferred-register: '' }
+  - { id: 47, class: sreg_64, preferred-register: '' }
+  - { id: 48, class: sreg_64, preferred-register: '' }
+  - { id: 49, class: sreg_64, preferred-register: '' }
+  - { id: 50, class: sgpr, preferred-register: '' }
+  - { id: 51, class: sreg_64, preferred-register: '' }
+  - { id: 52, class: sreg_64, preferred-register: '' }
+  - { id: 53, class: sreg_64, preferred-register: '' }
+  - { id: 54, class: sreg_64, preferred-register: '' }
+  - { id: 55, class: sgpr, preferred-register: '' }
+  - { id: 56, class: _, preferred-register: '' }
+  - { id: 57, class: sreg_64, preferred-register: '' }
+  - { id: 58, class: sreg_64, preferred-register: '' }
+  - { id: 59, class: sreg_64, preferred-register: '' }
+  - { id: 60, class: sreg_64, preferred-register: '' }
+  - { id: 61, class: sgpr, preferred-register: '' }
+  - { id: 62, class: sreg_64, preferred-register: '' }
+  - { id: 63, class: sreg_64, preferred-register: '' }
+  - { id: 64, class: sreg_64, preferred-register: '' }
+  - { id: 65, class: sreg_64, preferred-register: '' }
+  - { id: 66, class: sreg_64, preferred-register: '' }
+  - { id: 67, class: sgpr, preferred-register: '' }
+  - { id: 68, class: _, preferred-register: '' }
+  - { id: 69, class: sreg_64, preferred-register: '' }
+  - { id: 70, class: sreg_64, preferred-register: '' }
+  - { id: 71, class: sreg_64, preferred-register: '' }
+  - { id: 72, class: sreg_64, preferred-register: '' }
+  - { id: 73, class: sgpr, preferred-register: '' }
+  - { id: 74, class: _, preferred-register: '' }
+  - { id: 75, class: sreg_64, preferred-register: '' }
+  - { id: 76, class: _, preferred-register: '' }
+  - { id: 77, class: _, preferred-register: '' }
+  - { id: 78, class: sgpr, preferred-register: '' }
+  - { id: 79, class: sreg_64, preferred-register: '' }
+  - { id: 80, class: sgpr, preferred-register: '' }
+  - { id: 81, class: sreg_32, preferred-register: '' }
+  - { id: 82, class: sgpr, preferred-register: '' }
+  - { id: 83, class: sreg_64, preferred-register: '' }
+  - { id: 84, class: sgpr, preferred-register: '' }
+  - { id: 85, class: sgpr, preferred-register: '' }
+  - { id: 86, class: sreg_32, preferred-register: '' }
+  - { id: 87, class: sreg_64, preferred-register: '' }
+  - { id: 88, class: sgpr, preferred-register: '' }
+  - { id: 89, class: sreg_64, preferred-register: '' }
+  - { id: 90, class: sgpr, preferred-register: '' }
+  - { id: 91, class: sgpr, preferred-register: '' }
+  - { id: 92, class: sgpr, preferred-register: '' }
+  - { id: 93, class: sreg_32, preferred-register: '' }
+  - { id: 94, class: sreg_64, preferred-register: '' }
+  - { id: 95, class: sreg_64, preferred-register: '' }
+  - { id: 96, class: sgpr, preferred-register: '' }
+  - { id: 97, class: sreg_64, preferred-register: '' }
+  - { id: 98, class: sgpr, preferred-register: '' }
+  - { id: 99, class: sgpr, preferred-register: '' }
+  - { id: 100, class: sgpr, preferred-register: '' }
+  - { id: 101, class: sgpr, preferred-register: '' }
+  - { id: 102, class: sreg_32, preferred-register: '' }
+  - { id: 103, class: sreg_64, preferred-register: '' }
+  - { id: 104, class: sreg_64, preferred-register: '' }
+  - { id: 105, class: sreg_64, preferred-register: '' }
+  - { id: 106, class: sgpr, preferred-register: '' }
+  - { id: 107, class: sreg_64, preferred-register: '' }
+  - { id: 108, class: sgpr, preferred-register: '' }
+  - { id: 109, class: sgpr, preferred-register: '' }
+  - { id: 110, class: sgpr, preferred-register: '' }
+  - { id: 111, class: sgpr, preferred-register: '' }
+  - { id: 112, class: sgpr, preferred-register: '' }
+  - { id: 113, class: sreg_32, preferred-register: '' }
+  - { id: 114, class: sreg_64, preferred-register: '' }
+  - { id: 115, class: sreg_64, preferred-register: '' }
+  - { id: 116, class: sreg_64, preferred-register: '' }
+  - { id: 117, class: sreg_64, preferred-register: '' }
+  - { id: 118, class: sgpr, preferred-register: '' }
+  - { id: 119, class: sreg_64, preferred-register: '' }
+  - { id: 120, class: sgpr, preferred-register: '' }
+  - { id: 121, class: sgpr, preferred-register: '' }
+  - { id: 122, class: sgpr, preferred-register: '' }
+  - { id: 123, class: sgpr, preferred-register: '' }
+  - { id: 124, class: sgpr, preferred-register: '' }
+  - { id: 125, class: sgpr, preferred-register: '' }
+  - { id: 126, class: sreg_32, preferred-register: '' }
+  - { id: 127, class: sreg_64, preferred-register: '' }
+  - { id: 128, class: sreg_64, preferred-register: '' }
+  - { id: 129, class: sreg_64, preferred-register: '' }
+  - { id: 130, class: sreg_64, preferred-register: '' }
+  - { id: 131, class: sgpr, preferred-register: '' }
+  - { id: 132, class: sreg_64, preferred-register: '' }
+  - { id: 133, class: sgpr, preferred-register: '' }
+  - { id: 134, class: sgpr, preferred-register: '' }
+  - { id: 135, class: sgpr, preferred-register: '' }
+  - { id: 136, class: sgpr, preferred-register: '' }
+  - { id: 137, class: sgpr, preferred-register: '' }
+  - { id: 138, class: sgpr, preferred-register: '' }
+  - { id: 139, class: sgpr, preferred-register: '' }
+  - { id: 140, class: sreg_32, preferred-register: '' }
+  - { id: 141, class: sreg_64, preferred-register: '' }
+  - { id: 142, class: sreg_64, preferred-register: '' }
+  - { id: 143, class: sreg_64, preferred-register: '' }
+  - { id: 144, class: sreg_64, preferred-register: '' }
+  - { id: 145, class: sreg_64, preferred-register: '' }
+  - { id: 146, class: sgpr, preferred-register: '' }
+  - { id: 147, class: sreg_64, preferred-register: '' }
+  - { id: 148, class: sgpr, preferred-register: '' }
+  - { id: 149, class: sgpr, preferred-register: '' }
+  - { id: 150, class: sgpr, preferred-register: '' }
+  - { id: 151, class: sgpr, preferred-register: '' }
+  - { id: 152, class: sgpr, preferred-register: '' }
+  - { id: 153, class: sgpr, preferred-register: '' }
+  - { id: 154, class: sgpr, preferred-register: '' }
+  - { id: 155, class: sgpr, preferred-register: '' }
+  - { id: 156, class: sreg_32, preferred-register: '' }
+  - { id: 157, class: sreg_64, preferred-register: '' }
+  - { id: 158, class: sreg_64, preferred-register: '' }
+  - { id: 159, class: sreg_64, preferred-register: '' }
+  - { id: 160, class: sreg_64, preferred-register: '' }
+  - { id: 161, class: sreg_64, preferred-register: '' }
+  - { id: 162, class: sreg_64, preferred-register: '' }
+  - { id: 163, class: sgpr, preferred-register: '' }
+  - { id: 164, class: sgpr, preferred-register: '' }
+  - { id: 165, class: sgpr, preferred-register: '' }
+  - { id: 166, class: sgpr, preferred-register: '' }
+  - { id: 167, class: sgpr, preferred-register: '' }
+  - { id: 168, class: sgpr, preferred-register: '' }
+  - { id: 169, class: sgpr, preferred-register: '' }
+  - { id: 170, class: sgpr, preferred-register: '' }
+  - { id: 171, class: sgpr, preferred-register: '' }
+  - { id: 172, class: sreg_32, preferred-register: '' }
+  - { id: 173, class: sreg_64, preferred-register: '' }
+  - { id: 174, class: sreg_64, preferred-register: '' }
+  - { id: 175, class: sreg_64, preferred-register: '' }
+  - { id: 176, class: sreg_64, preferred-register: '' }
+  - { id: 177, class: sreg_64, preferred-register: '' }
+  - { id: 178, class: sreg_64, preferred-register: '' }
+  - { id: 179, class: sreg_64, preferred-register: '' }
+  - { id: 180, class: sreg_64, preferred-register: '' }
+  - { id: 181, class: sgpr, preferred-register: '' }
+  - { id: 182, class: sgpr, preferred-register: '' }
+  - { id: 183, class: sgpr, preferred-register: '' }
+  - { id: 184, class: sgpr, preferred-register: '' }
+  - { id: 185, class: sgpr, preferred-register: '' }
+  - { id: 186, class: sgpr, preferred-register: '' }
+  - { id: 187, class: sgpr, preferred-register: '' }
+  - { id: 188, class: sreg_32, preferred-register: '' }
+  - { id: 189, class: sreg_32, preferred-register: '' }
+  - { id: 190, class: sreg_32, preferred-register: '' }
+  - { id: 191, class: sgpr, preferred-register: '' }
+  - { id: 192, class: sreg_32, preferred-register: '' }
+  - { id: 193, class: sreg_32, preferred-register: '' }
+  - { id: 194, class: sreg_32, preferred-register: '' }
+  - { id: 195, class: sgpr, preferred-register: '' }
+  - { id: 196, class: sreg_32, preferred-register: '' }
+  - { id: 197, class: sreg_32, preferred-register: '' }
+  - { id: 198, class: sreg_32, preferred-register: '' }
+  - { id: 199, class: sgpr, preferred-register: '' }
+  - { id: 200, class: sreg_32, preferred-register: '' }
+  - { id: 201, class: sreg_32, preferred-register: '' }
+  - { id: 202, class: sreg_32, preferred-register: '' }
+  - { id: 203, class: sgpr, preferred-register: '' }
+  - { id: 204, class: sreg_32, preferred-register: '' }
+  - { id: 205, class: sreg_32, preferred-register: '' }
+  - { id: 206, class: sreg_32, preferred-register: '' }
+  - { id: 207, class: sgpr, preferred-register: '' }
+  - { id: 208, class: sreg_32, preferred-register: '' }
+  - { id: 209, class: sreg_32, preferred-register: '' }
+  - { id: 210, class: sreg_32, preferred-register: '' }
+  - { id: 211, class: sgpr, preferred-register: '' }
+  - { id: 212, class: sreg_32, preferred-register: '' }
+  - { id: 213, class: sreg_32, preferred-register: '' }
+  - { id: 214, class: sreg_32, preferred-register: '' }
+  - { id: 215, class: sgpr, preferred-register: '' }
+  - { id: 216, class: sreg_32, preferred-register: '' }
+  - { id: 217, class: sreg_32, preferred-register: '' }
+  - { id: 218, class: vgpr_32, preferred-register: '' }
+  - { id: 219, class: _, preferred-register: '' }
+  - { id: 220, class: _, preferred-register: '' }
+  - { id: 221, class: vgpr_32, preferred-register: '' }
+  - { id: 222, class: _, preferred-register: '' }
+  - { id: 223, class: vgpr_32, preferred-register: '' }
+  - { id: 224, class: vreg_128, preferred-register: '' }
+  - { id: 225, class: _, preferred-register: '' }
+  - { id: 226, class: vgpr_32, preferred-register: '' }
+  - { id: 227, class: vreg_128, preferred-register: '' }
+  - { id: 228, class: _, preferred-register: '' }
+  - { id: 229, class: vreg_256, preferred-register: '' }
+  - { id: 230, class: _, preferred-register: '' }
+  - { id: 231, class: _, preferred-register: '' }
+  - { id: 232, class: _, preferred-register: '' }
+  - { id: 233, class: _, preferred-register: '' }
+  - { id: 234, class: _, preferred-register: '' }
+  - { id: 235, class: _, preferred-register: '' }
+  - { id: 236, class: _, preferred-register: '' }
+  - { id: 237, class: vgpr_32, preferred-register: '' }
+  - { id: 238, class: sreg_32, preferred-register: '' }
+  - { id: 239, class: _, preferred-register: '' }
+  - { id: 240, class: vreg_64, preferred-register: '' }
+  - { id: 241, class: vgpr_32, preferred-register: '' }
+  - { id: 242, class: sreg_32, preferred-register: '' }
+  - { id: 243, class: _, preferred-register: '' }
+  - { id: 244, class: _, preferred-register: '' }
+  - { id: 245, class: sreg_64, preferred-register: '' }
+  - { id: 246, class: sreg_64, preferred-register: '' }
+  - { id: 247, class: vgpr_32, preferred-register: '' }
+  - { id: 248, class: sreg_32, preferred-register: '' }
+  - { id: 249, class: vreg_64, preferred-register: '' }
+  - { id: 250, class: vgpr_32, preferred-register: '' }
+  - { id: 251, class: sreg_32, preferred-register: '' }
+  - { id: 252, class: _, preferred-register: '' }
+  - { id: 253, class: sreg_64, preferred-register: '' }
+  - { id: 254, class: sreg_64, preferred-register: '' }
+  - { id: 255, class: vgpr_32, preferred-register: '' }
+  - { id: 256, class: sreg_32, preferred-register: '' }
+  - { id: 257, class: vreg_64, preferred-register: '' }
+  - { id: 258, class: vgpr_32, preferred-register: '' }
+  - { id: 259, class: sreg_32, preferred-register: '' }
+  - { id: 260, class: _, preferred-register: '' }
+  - { id: 261, class: sreg_64, preferred-register: '' }
+  - { id: 262, class: sreg_64, preferred-register: '' }
+  - { id: 263, class: vgpr_32, preferred-register: '' }
+  - { id: 264, class: sreg_32, preferred-register: '' }
+  - { id: 265, class: vreg_64, preferred-register: '' }
+  - { id: 266, class: vgpr_32, preferred-register: '' }
+  - { id: 267, class: sreg_32, preferred-register: '' }
+  - { id: 268, class: _, preferred-register: '' }
+  - { id: 269, class: sreg_64, preferred-register: '' }
+  - { id: 270, class: sreg_64, preferred-register: '' }
+  - { id: 271, class: sreg_32, preferred-register: '' }
+  - { id: 272, class: sgpr_128, preferred-register: '' }
+  - { id: 273, class: sreg_32, preferred-register: '' }
+  - { id: 274, class: sgpr_128, preferred-register: '' }
+  - { id: 275, class: _, preferred-register: '' }
+  - { id: 276, class: sgpr_256, preferred-register: '' }
+  - { id: 277, class: _, preferred-register: '' }
+  - { id: 278, class: _, preferred-register: '' }
+  - { id: 279, class: _, preferred-register: '' }
+  - { id: 280, class: _, preferred-register: '' }
+  - { id: 281, class: sgpr, preferred-register: '' }
+  - { id: 282, class: sgpr, preferred-register: '' }
+  - { id: 283, class: sgpr, preferred-register: '' }
+  - { id: 284, class: sgpr, preferred-register: '' }
+  - { id: 285, class: sgpr, preferred-register: '' }
+  - { id: 286, class: sgpr, preferred-register: '' }
+  - { id: 287, class: sgpr, preferred-register: '' }
+  - { id: 288, class: sreg_32, preferred-register: '' }
+  - { id: 289, class: sreg_64_xexec, preferred-register: '$vcc' }
+  - { id: 290, class: sreg_64_xexec, preferred-register: '' }
+  - { id: 291, class: sreg_64_xexec, preferred-register: '' }
+  - { id: 292, class: _, preferred-register: '' }
+  - { id: 293, class: sreg_64_xexec, preferred-register: '' }
+  - { id: 294, class: sreg_32, preferred-register: '' }
+  - { id: 295, class: vgpr_32, preferred-register: '' }
+  - { id: 296, class: _, preferred-register: '' }
+  - { id: 297, class: sreg_64_xexec, preferred-register: '' }
+  - { id: 298, class: sreg_64, preferred-register: '' }
+  - { id: 299, class: sreg_64, preferred-register: '' }
+  - { id: 300, class: sreg_64, preferred-register: '' }
+  - { id: 301, class: sreg_64, preferred-register: '' }
+  - { id: 302, class: sreg_64, preferred-register: '' }
+  - { id: 303, class: sreg_64, preferred-register: '' }
+  - { id: 304, class: sgpr, preferred-register: '' }
+  - { id: 305, class: sreg_64, preferred-register: '' }
+  - { id: 306, class: sreg_64, preferred-register: '' }
+  - { id: 307, class: sreg_64, preferred-register: '' }
+  - { id: 308, class: sreg_64, preferred-register: '' }
+  - { id: 309, class: sgpr, preferred-register: '' }
+  - { id: 310, class: sreg_64, preferred-register: '' }
+  - { id: 311, class: sreg_64, preferred-register: '' }
+  - { id: 312, class: sreg_64, preferred-register: '' }
+  - { id: 313, class: sreg_64, preferred-register: '' }
+  - { id: 314, class: sgpr, preferred-register: '' }
+  - { id: 315, class: sreg_64, preferred-register: '' }
+  - { id: 316, class: sreg_64, preferred-register: '' }
+  - { id: 317, class: sreg_64, preferred-register: '' }
+  - { id: 318, class: sgpr, preferred-register: '' }
+  - { id: 319, class: sreg_64, preferred-register: '' }
+  - { id: 320, class: sreg_64, preferred-register: '' }
+  - { id: 321, class: sreg_64, preferred-register: '' }
+  - { id: 322, class: sreg_64, preferred-register: '' }
+  - { id: 323, class: sgpr, preferred-register: '' }
+  - { id: 324, class: sreg_64, preferred-register: '' }
+  - { id: 325, class: sreg_64, preferred-register: '' }
+  - { id: 326, class: sreg_64, preferred-register: '' }
+  - { id: 327, class: sreg_64, preferred-register: '' }
+  - { id: 328, class: sgpr, preferred-register: '' }
+  - { id: 329, class: sreg_64, preferred-register: '' }
+  - { id: 330, class: sreg_64, preferred-register: '' }
+  - { id: 331, class: sreg_64, preferred-register: '' }
+  - { id: 332, class: sreg_64, preferred-register: '' }
+  - { id: 333, class: sgpr, preferred-register: '' }
+  - { id: 334, class: sreg_64, preferred-register: '' }
+  - { id: 335, class: sreg_64, preferred-register: '' }
+  - { id: 336, class: sreg_64, preferred-register: '' }
+  - { id: 337, class: sreg_64, preferred-register: '' }
+  - { id: 338, class: sgpr, preferred-register: '' }
+  - { id: 339, class: sreg_64, preferred-register: '' }
+  - { id: 340, class: _, preferred-register: '' }
+  - { id: 341, class: sgpr, preferred-register: '' }
+  - { id: 342, class: sreg_64, preferred-register: '' }
+  - { id: 343, class: sgpr, preferred-register: '' }
+  - { id: 344, class: sreg_32, preferred-register: '' }
+  - { id: 345, class: sgpr, preferred-register: '' }
+  - { id: 346, class: sreg_64, preferred-register: '' }
+  - { id: 347, class: sgpr, preferred-register: '' }
+  - { id: 348, class: sgpr, preferred-register: '' }
+  - { id: 349, class: sreg_32, preferred-register: '' }
+  - { id: 350, class: sreg_64, preferred-register: '' }
+  - { id: 351, class: sgpr, preferred-register: '' }
+  - { id: 352, class: sreg_64, preferred-register: '' }
+  - { id: 353, class: sgpr, preferred-register: '' }
+  - { id: 354, class: sgpr, preferred-register: '' }
+  - { id: 355, class: sgpr, preferred-register: '' }
+  - { id: 356, class: sreg_32, preferred-register: '' }
+  - { id: 357, class: sreg_64, preferred-register: '' }
+  - { id: 358, class: sreg_64, preferred-register: '' }
+  - { id: 359, class: sgpr, preferred-register: '' }
+  - { id: 360, class: sreg_64, preferred-register: '' }
+  - { id: 361, class: sgpr, preferred-register: '' }
+  - { id: 362, class: sgpr, preferred-register: '' }
+  - { id: 363, class: sgpr, preferred-register: '' }
+  - { id: 364, class: sgpr, preferred-register: '' }
+  - { id: 365, class: sreg_32, preferred-register: '' }
+  - { id: 366, class: sreg_64, preferred-register: '' }
+  - { id: 367, class: sreg_64, preferred-register: '' }
+  - { id: 368, class: sreg_64, preferred-register: '' }
+  - { id: 369, class: sgpr, preferred-register: '' }
+  - { id: 370, class: sreg_64, preferred-register: '' }
+  - { id: 371, class: sgpr, preferred-register: '' }
+  - { id: 372, class: sgpr, preferred-register: '' }
+  - { id: 373, class: sgpr, preferred-register: '' }
+  - { id: 374, class: sgpr, preferred-register: '' }
+  - { id: 375, class: sgpr, preferred-register: '' }
+  - { id: 376, class: sreg_32, preferred-register: '' }
+  - { id: 377, class: sreg_64, preferred-register: '' }
+  - { id: 378, class: sreg_64, preferred-register: '' }
+  - { id: 379, class: sreg_64, preferred-register: '' }
+  - { id: 380, class: sreg_64, preferred-register: '' }
+  - { id: 381, class: sgpr, preferred-register: '' }
+  - { id: 382, class: sreg_64, preferred-register: '' }
+  - { id: 383, class: sgpr, preferred-register: '' }
+  - { id: 384, class: sgpr, preferred-register: '' }
+  - { id: 385, class: sgpr, preferred-register: '' }
+  - { id: 386, class: sgpr, preferred-register: '' }
+  - { id: 387, class: sgpr, preferred-register: '' }
+  - { id: 388, class: sgpr, preferred-register: '' }
+  - { id: 389, class: sreg_32, preferred-register: '' }
+  - { id: 390, class: sreg_64, preferred-register: '' }
+  - { id: 391, class: sreg_64, preferred-register: '' }
+  - { id: 392, class: sreg_64, preferred-register: '' }
+  - { id: 393, class: sreg_64, preferred-register: '' }
+  - { id: 394, class: sgpr, preferred-register: '' }
+  - { id: 395, class: sreg_64, preferred-register: '' }
+  - { id: 396, class: sgpr, preferred-register: '' }
+  - { id: 397, class: sgpr, preferred-register: '' }
+  - { id: 398, class: sgpr, preferred-register: '' }
+  - { id: 399, class: sgpr, preferred-register: '' }
+  - { id: 400, class: sgpr, preferred-register: '' }
+  - { id: 401, class: sgpr, preferred-register: '' }
+  - { id: 402, class: sgpr, preferred-register: '' }
+  - { id: 403, class: sreg_32, preferred-register: '' }
+  - { id: 404, class: sreg_64, preferred-register: '' }
+  - { id: 405, class: sreg_64, preferred-register: '' }
+  - { id: 406, class: sreg_64, preferred-register: '' }
+  - { id: 407, class: sreg_64, preferred-register: '' }
+  - { id: 408, class: sreg_64, preferred-register: '' }
+  - { id: 409, class: sgpr, preferred-register: '' }
+  - { id: 410, class: sreg_64, preferred-register: '' }
+  - { id: 411, class: sgpr, preferred-register: '' }
+  - { id: 412, class: sgpr, preferred-register: '' }
+  - { id: 413, class: sgpr, preferred-register: '' }
+  - { id: 414, class: sgpr, preferred-register: '' }
+  - { id: 415, class: sgpr, preferred-register: '' }
+  - { id: 416, class: sgpr, preferred-register: '' }
+  - { id: 417, class: sgpr, preferred-register: '' }
+  - { id: 418, class: sgpr, preferred-register: '' }
+  - { id: 419, class: sreg_32, preferred-register: '' }
+  - { id: 420, class: sreg_64, preferred-register: '' }
+  - { id: 421, class: sreg_64, preferred-register: '' }
+  - { id: 422, class: sreg_64, preferred-register: '' }
+  - { id: 423, class: sreg_64, preferred-register: '' }
+  - { id: 424, class: sreg_64, preferred-register: '' }
+  - { id: 425, class: sreg_64, preferred-register: '' }
+  - { id: 426, class: sgpr, preferred-register: '' }
+  - { id: 427, class: sgpr, preferred-register: '' }
+  - { id: 428, class: sgpr, preferred-register: '' }
+  - { id: 429, class: sgpr, preferred-register: '' }
+  - { id: 430, class: sgpr, preferred-register: '' }
+  - { id: 431, class: sgpr, preferred-register: '' }
+  - { id: 432, class: sgpr, preferred-register: '' }
+  - { id: 433, class: sgpr, preferred-register: '' }
+  - { id: 434, class: sgpr, preferred-register: '' }
+  - { id: 435, class: sreg_32, preferred-register: '' }
+  - { id: 436, class: sreg_64, preferred-register: '' }
+  - { id: 437, class: sreg_64, preferred-register: '' }
+  - { id: 438, class: sreg_64, preferred-register: '' }
+  - { id: 439, class: sreg_64, preferred-register: '' }
+  - { id: 440, class: sreg_64, preferred-register: '' }
+  - { id: 441, class: sreg_64, preferred-register: '' }
+  - { id: 442, class: sreg_64, preferred-register: '' }
+  - { id: 443, class: sreg_64, preferred-register: '' }
+  - { id: 444, class: sgpr, preferred-register: '' }
+  - { id: 445, class: sgpr, preferred-register: '' }
+  - { id: 446, class: sgpr, preferred-register: '' }
+  - { id: 447, class: sgpr, preferred-register: '' }
+  - { id: 448, class: sgpr, preferred-register: '' }
+  - { id: 449, class: sgpr, preferred-register: '' }
+  - { id: 450, class: sgpr, preferred-register: '' }
+  - { id: 451, class: sreg_32, preferred-register: '' }
+  - { id: 452, class: sreg_32, preferred-register: '' }
+  - { id: 453, class: sreg_32, preferred-register: '' }
+  - { id: 454, class: sgpr, preferred-register: '' }
+  - { id: 455, class: sreg_32, preferred-register: '' }
+  - { id: 456, class: sreg_32, preferred-register: '' }
+  - { id: 457, class: sreg_32, preferred-register: '' }
+  - { id: 458, class: sgpr, preferred-register: '' }
+  - { id: 459, class: sreg_32, preferred-register: '' }
+  - { id: 460, class: sreg_32, preferred-register: '' }
+  - { id: 461, class: sreg_32, preferred-register: '' }
+  - { id: 462, class: sgpr, preferred-register: '' }
+  - { id: 463, class: sreg_32, preferred-register: '' }
+  - { id: 464, class: sreg_32, preferred-register: '' }
+  - { id: 465, class: sreg_32, preferred-register: '' }
+  - { id: 466, class: sgpr, preferred-register: '' }
+  - { id: 467, class: sreg_32, preferred-register: '' }
+  - { id: 468, class: sreg_32, preferred-register: '' }
+  - { id: 469, class: sreg_32, preferred-register: '' }
+  - { id: 470, class: sgpr, preferred-register: '' }
+  - { id: 471, class: sreg_32, preferred-register: '' }
+  - { id: 472, class: sreg_32, preferred-register: '' }
+  - { id: 473, class: sreg_32, preferred-register: '' }
+  - { id: 474, class: sgpr, preferred-register: '' }
+  - { id: 475, class: sreg_32, preferred-register: '' }
+  - { id: 476, class: sreg_32, preferred-register: '' }
+  - { id: 477, class: sreg_32, preferred-register: '' }
+  - { id: 478, class: sgpr, preferred-register: '' }
+  - { id: 479, class: sreg_32, preferred-register: '' }
+  - { id: 480, class: sreg_32, preferred-register: '' }
+  - { id: 481, class: sreg_32, preferred-register: '' }
+  - { id: 482, class: sreg_32, preferred-register: '' }
+  - { id: 483, class: _, preferred-register: '' }
+  - { id: 484, class: sreg_64, preferred-register: '' }
+  - { id: 485, class: sreg_64, preferred-register: '' }
+  - { id: 486, class: sreg_32, preferred-register: '' }
+  - { id: 487, class: sreg_32, preferred-register: '' }
+  - { id: 488, class: _, preferred-register: '' }
+  - { id: 489, class: sreg_64, preferred-register: '' }
+  - { id: 490, class: sreg_64, preferred-register: '' }
+  - { id: 491, class: sreg_32, preferred-register: '' }
+  - { id: 492, class: sreg_32, preferred-register: '' }
+  - { id: 493, class: _, preferred-register: '' }
+  - { id: 494, class: sreg_64, preferred-register: '' }
+  - { id: 495, class: sreg_64, preferred-register: '' }
+  - { id: 496, class: sreg_32, preferred-register: '' }
+  - { id: 497, class: sreg_32, preferred-register: '' }
+  - { id: 498, class: _, preferred-register: '' }
+  - { id: 499, class: sreg_64, preferred-register: '' }
+  - { id: 500, class: sreg_64, preferred-register: '' }
+  - { id: 501, class: sreg_32, preferred-register: '' }
+  - { id: 502, class: sgpr_128, preferred-register: '' }
+  - { id: 503, class: sreg_32, preferred-register: '' }
+  - { id: 504, class: sgpr_128, preferred-register: '' }
+  - { id: 505, class: _, preferred-register: '' }
+  - { id: 506, class: sgpr_256, preferred-register: '' }
+  - { id: 507, class: _, preferred-register: '' }
+  - { id: 508, class: _, preferred-register: '' }
+  - { id: 509, class: _, preferred-register: '' }
+  - { id: 510, class: _, preferred-register: '' }
+  - { id: 511, class: sgpr, preferred-register: '' }
+  - { id: 512, class: sgpr, preferred-register: '' }
+  - { id: 513, class: sgpr, preferred-register: '' }
+  - { id: 514, class: sgpr, preferred-register: '' }
+  - { id: 515, class: sgpr, preferred-register: '' }
+  - { id: 516, class: sgpr, preferred-register: '' }
+  - { id: 517, class: sgpr, preferred-register: '' }
+  - { id: 518, class: sreg_32, preferred-register: '' }
+  - { id: 519, class: sreg_32, preferred-register: '' }
+  - { id: 520, class: vgpr_32, preferred-register: '' }
+  - { id: 521, class: sreg_64_xexec, preferred-register: '' }
+  - { id: 522, class: _, preferred-register: '' }
+  - { id: 523, class: _, preferred-register: '' }
+  - { id: 524, class: sreg_64, preferred-register: '' }
+  - { id: 525, class: _, preferred-register: '' }
+  - { id: 526, class: _, preferred-register: '' }
+  - { id: 527, class: _, preferred-register: '' }
+  - { id: 528, class: _, preferred-register: '' }
+  - { id: 529, class: _, preferred-register: '' }
+  - { id: 530, class: sreg_32, preferred-register: '' }
+  - { id: 531, class: vgpr_32, preferred-register: '' }
+  - { id: 532, class: sreg_32, preferred-register: '' }
+  - { id: 533, class: sreg_32, preferred-register: '' }
+  - { id: 534, class: sreg_32, preferred-register: '' }
+  - { id: 535, class: sreg_32, preferred-register: '' }
+  - { id: 536, class: vgpr, preferred-register: '' }
+  - { id: 537, class: sgpr_128, preferred-register: '' }
+  - { id: 538, class: vgpr_32, preferred-register: '' }
+  - { id: 539, class: sreg_64, preferred-register: '' }
+  - { id: 540, class: _, preferred-register: '' }
+  - { id: 541, class: sreg_32, preferred-register: '' }
+  - { id: 542, class: _, preferred-register: '' }
+  - { id: 543, class: _, preferred-register: '' }
+  - { id: 544, class: _, preferred-register: '' }
+  - { id: 545, class: sgpr, preferred-register: '' }
+  - { id: 546, class: sgpr, preferred-register: '' }
+  - { id: 547, class: sgpr, preferred-register: '' }
+  - { id: 548, class: sgpr, preferred-register: '' }
+  - { id: 549, class: sgpr, preferred-register: '' }
+  - { id: 550, class: sgpr, preferred-register: '' }
+  - { id: 551, class: sgpr, preferred-register: '' }
+  - { id: 552, class: sgpr, preferred-register: '' }
+  - { id: 553, class: sgpr, preferred-register: '' }
+  - { id: 554, class: sgpr, preferred-register: '' }
+  - { id: 555, class: sgpr, preferred-register: '' }
+  - { id: 556, class: sgpr, preferred-register: '' }
+  - { id: 557, class: sgpr, preferred-register: '' }
+  - { id: 558, class: sgpr, preferred-register: '' }
+  - { id: 559, class: sgpr, preferred-register: '' }
+  - { id: 560, class: sgpr, preferred-register: '' }
+  - { id: 561, class: sgpr, preferred-register: '' }
+  - { id: 562, class: sgpr, preferred-register: '' }
+  - { id: 563, class: sgpr, preferred-register: '' }
+  - { id: 564, class: sgpr, preferred-register: '' }
+  - { id: 565, class: sgpr, preferred-register: '' }
+  - { id: 566, class: sgpr, preferred-register: '' }
+  - { id: 567, class: sgpr, preferred-register: '' }
+  - { id: 568, class: sgpr, preferred-register: '' }
+  - { id: 569, class: sgpr, preferred-register: '' }
+  - { id: 570, class: sgpr, preferred-register: '' }
+  - { id: 571, class: sgpr, preferred-register: '' }
+  - { id: 572, class: sgpr, preferred-register: '' }
+  - { id: 573, class: vreg_256, preferred-register: '' }
+  - { id: 574, class: sgpr_256, preferred-register: '' }
+  - { id: 575, class: _, preferred-register: '' }
+  - { id: 576, class: _, preferred-register: '' }
+  - { id: 577, class: _, preferred-register: '' }
+  - { id: 578, class: _, preferred-register: '' }
+  - { id: 579, class: sgpr, preferred-register: '' }
+  - { id: 580, class: sgpr, preferred-register: '' }
+  - { id: 581, class: sgpr, preferred-register: '' }
+  - { id: 582, class: sgpr, preferred-register: '' }
+  - { id: 583, class: sgpr, preferred-register: '' }
+  - { id: 584, class: sgpr, preferred-register: '' }
+  - { id: 585, class: sgpr, preferred-register: '' }
+  - { id: 586, class: sgpr, preferred-register: '' }
+  - { id: 587, class: sgpr, preferred-register: '' }
+  - { id: 588, class: sgpr, preferred-register: '' }
+  - { id: 589, class: sgpr, preferred-register: '' }
+  - { id: 590, class: sgpr, preferred-register: '' }
+  - { id: 591, class: sgpr, preferred-register: '' }
+  - { id: 592, class: sgpr, preferred-register: '' }
+  - { id: 593, class: sgpr, preferred-register: '' }
+  - { id: 594, class: sgpr, preferred-register: '' }
+  - { id: 595, class: sgpr, preferred-register: '' }
+  - { id: 596, class: sgpr, preferred-register: '' }
+  - { id: 597, class: sgpr, preferred-register: '' }
+  - { id: 598, class: sgpr, preferred-register: '' }
+  - { id: 599, class: sgpr, preferred-register: '' }
+  - { id: 600, class: sgpr, preferred-register: '' }
+  - { id: 601, class: sgpr, preferred-register: '' }
+  - { id: 602, class: sgpr, preferred-register: '' }
+  - { id: 603, class: sgpr, preferred-register: '' }
+  - { id: 604, class: sgpr, preferred-register: '' }
+  - { id: 605, class: sgpr, preferred-register: '' }
+  - { id: 606, class: sgpr, preferred-register: '' }
+  - { id: 607, class: sgpr_256, preferred-register: '' }
+  - { id: 608, class: sreg_32, preferred-register: '' }
+  - { id: 609, class: sreg_32, preferred-register: '' }
+  - { id: 610, class: sgpr, preferred-register: '' }
+  - { id: 611, class: sgpr, preferred-register: '' }
+  - { id: 612, class: sgpr, preferred-register: '' }
+  - { id: 613, class: sgpr, preferred-register: '' }
+  - { id: 614, class: sgpr, preferred-register: '' }
+  - { id: 615, class: sgpr, preferred-register: '' }
+  - { id: 616, class: sgpr, preferred-register: '' }
+  - { id: 617, class: sgpr, preferred-register: '' }
+  - { id: 618, class: sgpr, preferred-register: '' }
+  - { id: 619, class: sgpr, preferred-register: '' }
+  - { id: 620, class: sgpr, preferred-register: '' }
+  - { id: 621, class: sgpr, preferred-register: '' }
+  - { id: 622, class: sgpr, preferred-register: '' }
+  - { id: 623, class: sgpr, preferred-register: '' }
+  - { id: 624, class: sgpr, preferred-register: '' }
+  - { id: 625, class: sgpr, preferred-register: '' }
+  - { id: 626, class: sgpr, preferred-register: '' }
+  - { id: 627, class: sgpr, preferred-register: '' }
+  - { id: 628, class: sgpr, preferred-register: '' }
+  - { id: 629, class: sgpr, preferred-register: '' }
+  - { id: 630, class: sgpr, preferred-register: '' }
+  - { id: 631, class: sgpr, preferred-register: '' }
+  - { id: 632, class: sgpr, preferred-register: '' }
+  - { id: 633, class: sgpr, preferred-register: '' }
+  - { id: 634, class: sgpr, preferred-register: '' }
+  - { id: 635, class: sgpr, preferred-register: '' }
+  - { id: 636, class: sgpr, preferred-register: '' }
+  - { id: 637, class: sgpr, preferred-register: '' }
+  - { id: 638, class: sgpr, preferred-register: '' }
+  - { id: 639, class: sgpr, preferred-register: '' }
+  - { id: 640, class: sgpr, preferred-register: '' }
+  - { id: 641, class: sgpr, preferred-register: '' }
+  - { id: 642, class: sgpr, preferred-register: '' }
+  - { id: 643, class: sgpr, preferred-register: '' }
+  - { id: 644, class: sgpr, preferred-register: '' }
+  - { id: 645, class: sgpr, preferred-register: '' }
+  - { id: 646, class: sgpr, preferred-register: '' }
+  - { id: 647, class: sgpr, preferred-register: '' }
+  - { id: 648, class: sgpr, preferred-register: '' }
+  - { id: 649, class: sgpr, preferred-register: '' }
+  - { id: 650, class: sgpr, preferred-register: '' }
+  - { id: 651, class: sgpr, preferred-register: '' }
+  - { id: 652, class: sgpr, preferred-register: '' }
+  - { id: 653, class: sgpr, preferred-register: '' }
+  - { id: 654, class: sreg_32, preferred-register: '' }
+  - { id: 655, class: _, preferred-register: '' }
+  - { id: 656, class: _, preferred-register: '' }
+  - { id: 657, class: _, preferred-register: '' }
+  - { id: 658, class: _, preferred-register: '' }
+  - { id: 659, class: _, preferred-register: '' }
+  - { id: 660, class: sreg_32, preferred-register: '' }
+  - { id: 661, class: _, preferred-register: '' }
+  - { id: 662, class: sreg_32, preferred-register: '' }
+  - { id: 663, class: _, preferred-register: '' }
+  - { id: 664, class: _, preferred-register: '' }
+  - { id: 665, class: sreg_32, preferred-register: '' }
+  - { id: 666, class: sreg_32, preferred-register: '' }
+  - { id: 667, class: sreg_32, preferred-register: '' }
+  - { id: 668, class: sreg_32, preferred-register: '' }
+  - { id: 669, class: sreg_32, preferred-register: '' }
+  - { id: 670, class: sreg_32, preferred-register: '' }
+  - { id: 671, class: sreg_32, preferred-register: '' }
+  - { id: 672, class: sreg_32, preferred-register: '' }
+  - { id: 673, class: sreg_32, preferred-register: '' }
+  - { id: 674, class: sreg_32, preferred-register: '' }
+  - { id: 675, class: sreg_32, preferred-register: '' }
+  - { id: 676, class: _, preferred-register: '' }
+  - { id: 677, class: _, preferred-register: '' }
+  - { id: 678, class: _, preferred-register: '' }
+  - { id: 679, class: _, preferred-register: '' }
+  - { id: 680, class: _, preferred-register: '' }
+  - { id: 681, class: _, preferred-register: '' }
+  - { id: 682, class: sreg_64, preferred-register: '' }
+  - { id: 683, class: _, preferred-register: '' }
+  - { id: 684, class: _, preferred-register: '' }
+  - { id: 685, class: _, preferred-register: '' }
+  - { id: 686, class: _, preferred-register: '' }
+  - { id: 687, class: _, preferred-register: '' }
+  - { id: 688, class: _, preferred-register: '' }
+  - { id: 689, class: sreg_64, preferred-register: '' }
+  - { id: 690, class: sreg_64, preferred-register: '' }
+  - { id: 691, class: sreg_64, preferred-register: '' }
+  - { id: 692, class: sreg_64, preferred-register: '' }
+  - { id: 693, class: sreg_64, preferred-register: '' }
+  - { id: 694, class: sreg_64, preferred-register: '' }
+  - { id: 695, class: sreg_64, preferred-register: '' }
+  - { id: 696, class: sreg_64, preferred-register: '' }
+  - { id: 697, class: sreg_64, preferred-register: '' }
+  - { id: 698, class: sreg_64, preferred-register: '' }
+  - { id: 699, class: sreg_64, preferred-register: '' }
+  - { id: 700, class: sreg_64, preferred-register: '' }
+  - { id: 701, class: sreg_64, preferred-register: '' }
+  - { id: 702, class: sreg_64, preferred-register: '' }
+  - { id: 703, class: sreg_64, preferred-register: '' }
+  - { id: 704, class: sreg_64, preferred-register: '' }
+  - { id: 705, class: sreg_64, preferred-register: '' }
+  - { id: 706, class: sreg_64, preferred-register: '' }
+  - { id: 707, class: sreg_64, preferred-register: '' }
+  - { id: 708, class: sreg_64, preferred-register: '' }
+  - { id: 709, class: sreg_64, preferred-register: '' }
+  - { id: 710, class: sreg_64, preferred-register: '' }
+  - { id: 711, class: sreg_64, preferred-register: '' }
+  - { id: 712, class: sreg_64, preferred-register: '' }
+  - { id: 713, class: sreg_64, preferred-register: '' }
+  - { id: 714, class: sreg_64, preferred-register: '' }
+  - { id: 715, class: sreg_64, preferred-register: '' }
+  - { id: 716, class: sreg_64, preferred-register: '' }
+  - { id: 717, class: sreg_64, preferred-register: '' }
+  - { id: 718, class: sreg_64, preferred-register: '' }
+  - { id: 719, class: sreg_64, preferred-register: '' }
+  - { id: 720, class: sreg_64, preferred-register: '' }
+  - { id: 721, class: _, preferred-register: '' }
+  - { id: 722, class: _, preferred-register: '' }
+  - { id: 723, class: sgpr, preferred-register: '' }
+  - { id: 724, class: sgpr, preferred-register: '' }
+  - { id: 725, class: sgpr, preferred-register: '' }
+  - { id: 726, class: sgpr, preferred-register: '' }
+  - { id: 727, class: sgpr, preferred-register: '' }
+  - { id: 728, class: sgpr, preferred-register: '' }
+  - { id: 729, class: sgpr, preferred-register: '' }
+  - { id: 730, class: sgpr, preferred-register: '' }
+  - { id: 731, class: sgpr, preferred-register: '' }
+  - { id: 732, class: sgpr, preferred-register: '' }
+  - { id: 733, class: sgpr, preferred-register: '' }
+  - { id: 734, class: sgpr, preferred-register: '' }
+  - { id: 735, class: sgpr, preferred-register: '' }
+  - { id: 736, class: sgpr, preferred-register: '' }
+  - { id: 737, class: sgpr, preferred-register: '' }
+  - { id: 738, class: sgpr, preferred-register: '' }
+  - { id: 739, class: sgpr, preferred-register: '' }
+  - { id: 740, class: sgpr, preferred-register: '' }
+  - { id: 741, class: sgpr, preferred-register: '' }
+  - { id: 742, class: sgpr, preferred-register: '' }
+  - { id: 743, class: sgpr, preferred-register: '' }
+  - { id: 744, class: sgpr, preferred-register: '' }
+  - { id: 745, class: sgpr, preferred-register: '' }
+  - { id: 746, class: sgpr, preferred-register: '' }
+  - { id: 747, class: sgpr, preferred-register: '' }
+  - { id: 748, class: sgpr, preferred-register: '' }
+  - { id: 749, class: sgpr, preferred-register: '' }
+  - { id: 750, class: sgpr, preferred-register: '' }
+  - { id: 751, class: sgpr, preferred-register: '' }
+  - { id: 752, class: sgpr, preferred-register: '' }
+  - { id: 753, class: sgpr, preferred-register: '' }
+  - { id: 754, class: sgpr, preferred-register: '' }
+  - { id: 755, class: sreg_32, preferred-register: '' }
+  - { id: 756, class: sreg_32, preferred-register: '' }
+  - { id: 757, class: sreg_64, preferred-register: '' }
+  - { id: 758, class: sreg_64, preferred-register: '' }
+  - { id: 759, class: sreg_64, preferred-register: '' }
+  - { id: 760, class: sreg_64, preferred-register: '' }
+  - { id: 761, class: sreg_32, preferred-register: '' }
+  - { id: 762, class: sreg_32, preferred-register: '' }
+  - { id: 763, class: sreg_32, preferred-register: '' }
+  - { id: 764, class: sreg_32, preferred-register: '' }
+  - { id: 765, class: sreg_32, preferred-register: '' }
+  - { id: 766, class: sgpr, preferred-register: '' }
+  - { id: 767, class: sreg_32, preferred-register: '' }
+  - { id: 768, class: sgpr, preferred-register: '' }
+  - { id: 769, class: _, preferred-register: '' }
+  - { id: 770, class: sreg_32, preferred-register: '' }
+  - { id: 771, class: sreg_32, preferred-register: '' }
+  - { id: 772, class: sreg_32, preferred-register: '' }
+  - { id: 773, class: sreg_32, preferred-register: '' }
+  - { id: 774, class: sreg_32, preferred-register: '' }
+  - { id: 775, class: sgpr, preferred-register: '' }
+  - { id: 776, class: sreg_32, preferred-register: '' }
+  - { id: 777, class: sgpr, preferred-register: '' }
+  - { id: 778, class: _, preferred-register: '' }
+  - { id: 779, class: sreg_32, preferred-register: '' }
+  - { id: 780, class: sreg_32, preferred-register: '' }
+  - { id: 781, class: sreg_32, preferred-register: '' }
+  - { id: 782, class: sreg_32, preferred-register: '' }
+  - { id: 783, class: sreg_32, preferred-register: '' }
+  - { id: 784, class: sgpr, preferred-register: '' }
+  - { id: 785, class: sreg_32, preferred-register: '' }
+  - { id: 786, class: sgpr, preferred-register: '' }
+  - { id: 787, class: _, preferred-register: '' }
+  - { id: 788, class: sreg_32, preferred-register: '' }
+  - { id: 789, class: sreg_32, preferred-register: '' }
+  - { id: 790, class: sreg_32, preferred-register: '' }
+  - { id: 791, class: sreg_32, preferred-register: '' }
+  - { id: 792, class: sreg_32, preferred-register: '' }
+  - { id: 793, class: sgpr, preferred-register: '' }
+  - { id: 794, class: sreg_32, preferred-register: '' }
+  - { id: 795, class: sgpr, preferred-register: '' }
+  - { id: 796, class: _, preferred-register: '' }
+  - { id: 797, class: sreg_32, preferred-register: '' }
+  - { id: 798, class: sreg_32, preferred-register: '' }
+  - { id: 799, class: sreg_32, preferred-register: '' }
+  - { id: 800, class: sreg_32, preferred-register: '' }
+  - { id: 801, class: sreg_32, preferred-register: '' }
+  - { id: 802, class: sgpr, preferred-register: '' }
+  - { id: 803, class: sreg_32, preferred-register: '' }
+  - { id: 804, class: sgpr, preferred-register: '' }
+  - { id: 805, class: sreg_32, preferred-register: '' }
+  - { id: 806, class: _, preferred-register: '' }
+  - { id: 807, class: sreg_32, preferred-register: '' }
+  - { id: 808, class: sreg_32, preferred-register: '' }
+  - { id: 809, class: sreg_32, preferred-register: '' }
+  - { id: 810, class: sreg_32, preferred-register: '' }
+  - { id: 811, class: sreg_32, preferred-register: '' }
+  - { id: 812, class: sgpr, preferred-register: '' }
+  - { id: 813, class: sreg_32, preferred-register: '' }
+  - { id: 814, class: sgpr, preferred-register: '' }
+  - { id: 815, class: _, preferred-register: '' }
+  - { id: 816, class: sreg_32, preferred-register: '' }
+  - { id: 817, class: sreg_32, preferred-register: '' }
+  - { id: 818, class: sreg_32, preferred-register: '' }
+  - { id: 819, class: sreg_32, preferred-register: '' }
+  - { id: 820, class: sreg_32, preferred-register: '' }
+  - { id: 821, class: sgpr, preferred-register: '' }
+  - { id: 822, class: sreg_32, preferred-register: '' }
+  - { id: 823, class: sgpr, preferred-register: '' }
+  - { id: 824, class: _, preferred-register: '' }
+  - { id: 825, class: sreg_32, preferred-register: '' }
+  - { id: 826, class: sreg_32, preferred-register: '' }
+  - { id: 827, class: sreg_32, preferred-register: '' }
+  - { id: 828, class: sreg_32, preferred-register: '' }
+  - { id: 829, class: sreg_32, preferred-register: '' }
+  - { id: 830, class: sgpr, preferred-register: '' }
+  - { id: 831, class: sreg_32, preferred-register: '' }
+  - { id: 832, class: sgpr, preferred-register: '' }
+  - { id: 833, class: sreg_64, preferred-register: '' }
+  - { id: 834, class: sreg_64, preferred-register: '' }
+  - { id: 835, class: sreg_64, preferred-register: '' }
+  - { id: 836, class: sreg_64, preferred-register: '' }
+  - { id: 837, class: _, preferred-register: '' }
+  - { id: 838, class: vreg_64, preferred-register: '' }
+  - { id: 839, class: vreg_64, preferred-register: '' }
+  - { id: 840, class: vreg_64, preferred-register: '' }
+  - { id: 841, class: vreg_64, preferred-register: '' }
+  - { id: 842, class: sreg_32, preferred-register: '' }
+  - { id: 843, class: sreg_32, preferred-register: '' }
+  - { id: 844, class: sreg_32, preferred-register: '' }
+  - { id: 845, class: sreg_32, preferred-register: '' }
+  - { id: 846, class: sreg_32, preferred-register: '' }
+  - { id: 847, class: sgpr, preferred-register: '' }
+  - { id: 848, class: sreg_32, preferred-register: '' }
+  - { id: 849, class: sgpr, preferred-register: '' }
+  - { id: 850, class: _, preferred-register: '' }
+  - { id: 851, class: sreg_32, preferred-register: '' }
+  - { id: 852, class: sreg_32, preferred-register: '' }
+  - { id: 853, class: sreg_32, preferred-register: '' }
+  - { id: 854, class: sreg_32, preferred-register: '' }
+  - { id: 855, class: sreg_32, preferred-register: '' }
+  - { id: 856, class: sgpr, preferred-register: '' }
+  - { id: 857, class: sreg_32, preferred-register: '' }
+  - { id: 858, class: sgpr, preferred-register: '' }
+  - { id: 859, class: _, preferred-register: '' }
+  - { id: 860, class: sreg_32, preferred-register: '' }
+  - { id: 861, class: sreg_32, preferred-register: '' }
+  - { id: 862, class: sreg_32, preferred-register: '' }
+  - { id: 863, class: sreg_32, preferred-register: '' }
+  - { id: 864, class: sreg_32, preferred-register: '' }
+  - { id: 865, class: sgpr, preferred-register: '' }
+  - { id: 866, class: sreg_32, preferred-register: '' }
+  - { id: 867, class: sgpr, preferred-register: '' }
+  - { id: 868, class: _, preferred-register: '' }
+  - { id: 869, class: sreg_32, preferred-register: '' }
+  - { id: 870, class: sreg_32, preferred-register: '' }
+  - { id: 871, class: sreg_32, preferred-register: '' }
+  - { id: 872, class: sreg_32, preferred-register: '' }
+  - { id: 873, class: sreg_32, preferred-register: '' }
+  - { id: 874, class: sgpr, preferred-register: '' }
+  - { id: 875, class: sreg_32, preferred-register: '' }
+  - { id: 876, class: sgpr, preferred-register: '' }
+  - { id: 877, class: _, preferred-register: '' }
+  - { id: 878, class: sreg_32, preferred-register: '' }
+  - { id: 879, class: sreg_32, preferred-register: '' }
+  - { id: 880, class: sreg_32, preferred-register: '' }
+  - { id: 881, class: sreg_32, preferred-register: '' }
+  - { id: 882, class: sreg_32, preferred-register: '' }
+  - { id: 883, class: sgpr, preferred-register: '' }
+  - { id: 884, class: sreg_32, preferred-register: '' }
+  - { id: 885, class: sgpr, preferred-register: '' }
+  - { id: 886, class: sreg_32, preferred-register: '' }
+  - { id: 887, class: _, preferred-register: '' }
+  - { id: 888, class: sreg_32, preferred-register: '' }
+  - { id: 889, class: sreg_32, preferred-register: '' }
+  - { id: 890, class: sreg_32, preferred-register: '' }
+  - { id: 891, class: sreg_32, preferred-register: '' }
+  - { id: 892, class: sreg_32, preferred-register: '' }
+  - { id: 893, class: sgpr, preferred-register: '' }
+  - { id: 894, class: sreg_32, preferred-register: '' }
+  - { id: 895, class: sgpr, preferred-register: '' }
+  - { id: 896, class: _, preferred-register: '' }
+  - { id: 897, class: sreg_32, preferred-register: '' }
+  - { id: 898, class: sreg_32, preferred-register: '' }
+  - { id: 899, class: sreg_32, preferred-register: '' }
+  - { id: 900, class: sreg_32, preferred-register: '' }
+  - { id: 901, class: sreg_32, preferred-register: '' }
+  - { id: 902, class: sgpr, preferred-register: '' }
+  - { id: 903, class: sreg_32, preferred-register: '' }
+  - { id: 904, class: sgpr, preferred-register: '' }
+  - { id: 905, class: _, preferred-register: '' }
+  - { id: 906, class: sreg_32, preferred-register: '' }
+  - { id: 907, class: sreg_32, preferred-register: '' }
+  - { id: 908, class: sreg_32, preferred-register: '' }
+  - { id: 909, class: sreg_32, preferred-register: '' }
+  - { id: 910, class: sreg_32, preferred-register: '' }
+  - { id: 911, class: sgpr, preferred-register: '' }
+  - { id: 912, class: sreg_32, preferred-register: '' }
+  - { id: 913, class: sgpr, preferred-register: '' }
+  - { id: 914, class: vgpr_32, preferred-register: '' }
+  - { id: 915, class: vgpr_32, preferred-register: '' }
+  - { id: 916, class: sreg_32, preferred-register: '' }
+  - { id: 917, class: vgpr_32, preferred-register: '' }
+  - { id: 918, class: vgpr_32, preferred-register: '' }
+  - { id: 919, class: sreg_32, preferred-register: '' }
+  - { id: 920, class: vgpr_32, preferred-register: '' }
+  - { id: 921, class: vgpr_32, preferred-register: '' }
+  - { id: 922, class: sreg_32, preferred-register: '' }
+  - { id: 923, class: vgpr_32, preferred-register: '' }
+  - { id: 924, class: vgpr_32, preferred-register: '' }
+  - { id: 925, class: sreg_32, preferred-register: '' }
+  - { id: 926, class: sgpr, preferred-register: '' }
+  - { id: 927, class: sreg_64_xexec, preferred-register: '' }
+  - { id: 928, class: sreg_32, preferred-register: '' }
+  - { id: 929, class: sgpr, preferred-register: '' }
+  - { id: 930, class: sreg_32, preferred-register: '' }
+  - { id: 931, class: sreg_32, preferred-register: '' }
+  - { id: 932, class: sreg_32, preferred-register: '' }
+  - { id: 933, class: sreg_32, preferred-register: '' }
+  - { id: 934, class: sgpr, preferred-register: '' }
+  - { id: 935, class: sreg_32, preferred-register: '' }
+  - { id: 936, class: sreg_32, preferred-register: '' }
+  - { id: 937, class: sreg_32, preferred-register: '' }
+  - { id: 938, class: sgpr, preferred-register: '' }
+  - { id: 939, class: sreg_32, preferred-register: '' }
+  - { id: 940, class: sreg_32, preferred-register: '' }
+  - { id: 941, class: sreg_32, preferred-register: '' }
+  - { id: 942, class: sreg_32, preferred-register: '' }
+  - { id: 943, class: sgpr, preferred-register: '' }
+  - { id: 944, class: sreg_32, preferred-register: '' }
+  - { id: 945, class: sreg_32, preferred-register: '' }
+  - { id: 946, class: sreg_32, preferred-register: '' }
+  - { id: 947, class: sgpr, preferred-register: '' }
+  - { id: 948, class: sreg_32, preferred-register: '' }
+  - { id: 949, class: sreg_32, preferred-register: '' }
+  - { id: 950, class: sreg_32_xm0, preferred-register: '' }
+  - { id: 951, class: sreg_32, preferred-register: '' }
+  - { id: 952, class: sgpr, preferred-register: '' }
+  - { id: 953, class: sreg_32, preferred-register: '' }
+  - { id: 954, class: sreg_32, preferred-register: '' }
+  - { id: 955, class: sreg_32, preferred-register: '' }
+  - { id: 956, class: sreg_32, preferred-register: '' }
+  - { id: 957, class: sreg_32, preferred-register: '' }
+  - { id: 958, class: sgpr, preferred-register: '' }
+  - { id: 959, class: sreg_32, preferred-register: '' }
+  - { id: 960, class: sreg_32, preferred-register: '' }
+  - { id: 961, class: sreg_32, preferred-register: '' }
+  - { id: 962, class: sgpr, preferred-register: '' }
+  - { id: 963, class: sreg_32, preferred-register: '' }
+  - { id: 964, class: sreg_32, preferred-register: '' }
+  - { id: 965, class: sreg_32, preferred-register: '' }
+  - { id: 966, class: sreg_32, preferred-register: '' }
+  - { id: 967, class: sgpr, preferred-register: '' }
+  - { id: 968, class: sreg_32, preferred-register: '' }
+  - { id: 969, class: sreg_32, preferred-register: '' }
+  - { id: 970, class: sreg_32, preferred-register: '' }
+  - { id: 971, class: sgpr, preferred-register: '' }
+  - { id: 972, class: sreg_32, preferred-register: '' }
+  - { id: 973, class: sreg_32, preferred-register: '' }
+  - { id: 974, class: sreg_32, preferred-register: '' }
+  - { id: 975, class: sreg_32, preferred-register: '' }
+  - { id: 976, class: sgpr, preferred-register: '' }
+  - { id: 977, class: sreg_32, preferred-register: '' }
+  - { id: 978, class: sreg_32, preferred-register: '' }
+  - { id: 979, class: sreg_32, preferred-register: '' }
+  - { id: 980, class: sgpr, preferred-register: '' }
+  - { id: 981, class: sreg_32, preferred-register: '' }
+  - { id: 982, class: sreg_32, preferred-register: '' }
+  - { id: 983, class: sreg_32, preferred-register: '' }
+  - { id: 984, class: sreg_32, preferred-register: '' }
+  - { id: 985, class: sgpr, preferred-register: '' }
+  - { id: 986, class: sreg_32, preferred-register: '' }
+  - { id: 987, class: sreg_32, preferred-register: '' }
+  - { id: 988, class: sreg_32, preferred-register: '' }
+  - { id: 989, class: sgpr, preferred-register: '' }
+  - { id: 990, class: sreg_32, preferred-register: '' }
+  - { id: 991, class: sreg_32, preferred-register: '' }
+  - { id: 992, class: sreg_32, preferred-register: '' }
+  - { id: 993, class: sgpr, preferred-register: '' }
+  - { id: 994, class: sreg_32, preferred-register: '' }
+  - { id: 995, class: sreg_32, preferred-register: '' }
+  - { id: 996, class: sreg_32, preferred-register: '' }
+  - { id: 997, class: sgpr, preferred-register: '' }
+  - { id: 998, class: sreg_32, preferred-register: '' }
+  - { id: 999, class: sreg_32, preferred-register: '' }
+  - { id: 1000, class: sreg_32, preferred-register: '' }
+  - { id: 1001, class: sgpr, preferred-register: '' }
+  - { id: 1002, class: sgpr, preferred-register: '' }
+  - { id: 1003, class: sreg_32, preferred-register: '' }
+  - { id: 1004, class: sgpr, preferred-register: '' }
+  - { id: 1005, class: sgpr, preferred-register: '' }
+  - { id: 1006, class: sreg_32, preferred-register: '' }
+  - { id: 1007, class: sreg_32, preferred-register: '' }
+  - { id: 1008, class: sgpr, preferred-register: '' }
+  - { id: 1009, class: sgpr, preferred-register: '' }
+  - { id: 1010, class: sreg_32, preferred-register: '' }
+  - { id: 1011, class: sgpr, preferred-register: '' }
+  - { id: 1012, class: sgpr, preferred-register: '' }
+  - { id: 1013, class: sreg_32, preferred-register: '' }
+  - { id: 1014, class: sgpr, preferred-register: '' }
+  - { id: 1015, class: sgpr, preferred-register: '' }
+  - { id: 1016, class: sreg_32, preferred-register: '' }
+  - { id: 1017, class: sreg_32, preferred-register: '' }
+  - { id: 1018, class: sgpr, preferred-register: '' }
+  - { id: 1019, class: sgpr, preferred-register: '' }
+  - { id: 1020, class: sreg_32, preferred-register: '' }
+  - { id: 1021, class: sgpr, preferred-register: '' }
+  - { id: 1022, class: sgpr, preferred-register: '' }
+  - { id: 1023, class: sreg_32, preferred-register: '' }
+  - { id: 1024, class: sgpr, preferred-register: '' }
+  - { id: 1025, class: sgpr, preferred-register: '' }
+  - { id: 1026, class: sreg_32, preferred-register: '' }
+  - { id: 1027, class: sgpr, preferred-register: '' }
+  - { id: 1028, class: sgpr, preferred-register: '' }
+  - { id: 1029, class: sreg_32, preferred-register: '' }
+  - { id: 1030, class: sreg_32, preferred-register: '' }
+  - { id: 1031, class: sgpr, preferred-register: '' }
+  - { id: 1032, class: sgpr, preferred-register: '' }
+  - { id: 1033, class: sreg_32, preferred-register: '' }
+  - { id: 1034, class: sgpr, preferred-register: '' }
+  - { id: 1035, class: sgpr, preferred-register: '' }
+  - { id: 1036, class: sreg_32, preferred-register: '' }
+  - { id: 1037, class: sgpr, preferred-register: '' }
+  - { id: 1038, class: sgpr, preferred-register: '' }
+  - { id: 1039, class: sreg_32, preferred-register: '' }
+  - { id: 1040, class: sgpr, preferred-register: '' }
+  - { id: 1041, class: sgpr, preferred-register: '' }
+  - { id: 1042, class: sreg_32, preferred-register: '' }
+  - { id: 1043, class: sgpr, preferred-register: '' }
+  - { id: 1044, class: sgpr, preferred-register: '' }
+  - { id: 1045, class: sreg_32, preferred-register: '' }
+  - { id: 1046, class: sreg_32, preferred-register: '' }
+  - { id: 1047, class: sgpr, preferred-register: '' }
+  - { id: 1048, class: sgpr, preferred-register: '' }
+  - { id: 1049, class: sreg_32, preferred-register: '' }
+  - { id: 1050, class: sgpr, preferred-register: '' }
+  - { id: 1051, class: sgpr, preferred-register: '' }
+  - { id: 1052, class: sreg_32, preferred-register: '' }
+  - { id: 1053, class: sgpr, preferred-register: '' }
+  - { id: 1054, class: sgpr, preferred-register: '' }
+  - { id: 1055, class: sreg_32, preferred-register: '' }
+  - { id: 1056, class: sgpr, preferred-register: '' }
+  - { id: 1057, class: sgpr, preferred-register: '' }
+  - { id: 1058, class: sreg_32, preferred-register: '' }
+  - { id: 1059, class: sgpr, preferred-register: '' }
+  - { id: 1060, class: sgpr, preferred-register: '' }
+  - { id: 1061, class: sreg_32, preferred-register: '' }
+  - { id: 1062, class: sgpr, preferred-register: '' }
+  - { id: 1063, class: sgpr, preferred-register: '' }
+  - { id: 1064, class: sreg_32, preferred-register: '' }
+  - { id: 1065, class: sreg_32, preferred-register: '' }
+  - { id: 1066, class: sgpr, preferred-register: '' }
+  - { id: 1067, class: sgpr, preferred-register: '' }
+  - { id: 1068, class: sreg_32, preferred-register: '' }
+  - { id: 1069, class: sgpr, preferred-register: '' }
+  - { id: 1070, class: sgpr, preferred-register: '' }
+  - { id: 1071, class: sreg_32, preferred-register: '' }
+  - { id: 1072, class: sgpr, preferred-register: '' }
+  - { id: 1073, class: sgpr, preferred-register: '' }
+  - { id: 1074, class: sreg_32, preferred-register: '' }
+  - { id: 1075, class: sgpr, preferred-register: '' }
+  - { id: 1076, class: sgpr, preferred-register: '' }
+  - { id: 1077, class: sreg_32, preferred-register: '' }
+  - { id: 1078, class: sgpr, preferred-register: '' }
+  - { id: 1079, class: sgpr, preferred-register: '' }
+  - { id: 1080, class: sreg_32, preferred-register: '' }
+  - { id: 1081, class: sgpr, preferred-register: '' }
+  - { id: 1082, class: sgpr, preferred-register: '' }
+  - { id: 1083, class: sreg_32, preferred-register: '' }
+  - { id: 1084, class: sgpr, preferred-register: '' }
+  - { id: 1085, class: sgpr, preferred-register: '' }
+  - { id: 1086, class: sreg_32, preferred-register: '' }
+  - { id: 1087, class: sreg_32, preferred-register: '' }
+  - { id: 1088, class: sgpr, preferred-register: '' }
+  - { id: 1089, class: sgpr, preferred-register: '' }
+  - { id: 1090, class: sreg_32, preferred-register: '' }
+  - { id: 1091, class: sgpr, preferred-register: '' }
+  - { id: 1092, class: sgpr, preferred-register: '' }
+  - { id: 1093, class: sreg_32, preferred-register: '' }
+  - { id: 1094, class: sgpr, preferred-register: '' }
+  - { id: 1095, class: sgpr, preferred-register: '' }
+  - { id: 1096, class: sreg_32, preferred-register: '' }
+  - { id: 1097, class: sgpr, preferred-register: '' }
+  - { id: 1098, class: sgpr, preferred-register: '' }
+  - { id: 1099, class: sreg_32, preferred-register: '' }
+  - { id: 1100, class: sgpr, preferred-register: '' }
+  - { id: 1101, class: sgpr, preferred-register: '' }
+  - { id: 1102, class: sreg_32, preferred-register: '' }
+  - { id: 1103, class: sgpr, preferred-register: '' }
+  - { id: 1104, class: sgpr, preferred-register: '' }
+  - { id: 1105, class: sreg_32, preferred-register: '' }
+  - { id: 1106, class: sgpr, preferred-register: '' }
+  - { id: 1107, class: sgpr, preferred-register: '' }
+  - { id: 1108, class: sreg_32, preferred-register: '' }
+  - { id: 1109, class: sgpr, preferred-register: '' }
+  - { id: 1110, class: sgpr, preferred-register: '' }
+  - { id: 1111, class: sreg_32, preferred-register: '' }
+  - { id: 1112, class: sreg_32, preferred-register: '' }
+  - { id: 1113, class: sgpr, preferred-register: '' }
+  - { id: 1114, class: sgpr, preferred-register: '' }
+  - { id: 1115, class: sreg_32, preferred-register: '' }
+  - { id: 1116, class: sgpr, preferred-register: '' }
+  - { id: 1117, class: sgpr, preferred-register: '' }
+  - { id: 1118, class: sreg_32, preferred-register: '' }
+  - { id: 1119, class: sgpr, preferred-register: '' }
+  - { id: 1120, class: sgpr, preferred-register: '' }
+  - { id: 1121, class: sreg_32, preferred-register: '' }
+  - { id: 1122, class: sgpr, preferred-register: '' }
+  - { id: 1123, class: sgpr, preferred-register: '' }
+  - { id: 1124, class: sreg_32, preferred-register: '' }
+  - { id: 1125, class: sgpr, preferred-register: '' }
+  - { id: 1126, class: sgpr, preferred-register: '' }
+  - { id: 1127, class: sreg_32, preferred-register: '' }
+  - { id: 1128, class: sgpr, preferred-register: '' }
+  - { id: 1129, class: sgpr, preferred-register: '' }
+  - { id: 1130, class: sreg_32, preferred-register: '' }
+  - { id: 1131, class: sgpr, preferred-register: '' }
+  - { id: 1132, class: sgpr, preferred-register: '' }
+  - { id: 1133, class: sreg_32, preferred-register: '' }
+  - { id: 1134, class: sgpr, preferred-register: '' }
+  - { id: 1135, class: sgpr, preferred-register: '' }
+  - { id: 1136, class: sreg_32, preferred-register: '' }
+  - { id: 1137, class: sgpr, preferred-register: '' }
+  - { id: 1138, class: sgpr, preferred-register: '' }
+  - { id: 1139, class: sreg_32, preferred-register: '' }
+  - { id: 1140, class: sgpr, preferred-register: '' }
+  - { id: 1141, class: sreg_32, preferred-register: '' }
+  - { id: 1142, class: sreg_32, preferred-register: '' }
+  - { id: 1143, class: sgpr, preferred-register: '' }
+  - { id: 1144, class: sreg_32, preferred-register: '' }
+  - { id: 1145, class: sgpr, preferred-register: '' }
+  - { id: 1146, class: sreg_32, preferred-register: '' }
+  - { id: 1147, class: sgpr, preferred-register: '' }
+  - { id: 1148, class: sreg_32, preferred-register: '' }
+  - { id: 1149, class: sgpr, preferred-register: '' }
+  - { id: 1150, class: sreg_32, preferred-register: '' }
+  - { id: 1151, class: sgpr, preferred-register: '' }
+  - { id: 1152, class: sreg_32, preferred-register: '' }
+  - { id: 1153, class: sgpr, preferred-register: '' }
+  - { id: 1154, class: sreg_32, preferred-register: '' }
+  - { id: 1155, class: sgpr, preferred-register: '' }
+  - { id: 1156, class: sreg_32, preferred-register: '' }
+  - { id: 1157, class: sgpr, preferred-register: '' }
+  - { id: 1158, class: sreg_32, preferred-register: '' }
+  - { id: 1159, class: sreg_32, preferred-register: '' }
+  - { id: 1160, class: sgpr, preferred-register: '' }
+  - { id: 1161, class: sgpr, preferred-register: '' }
+  - { id: 1162, class: sreg_32, preferred-register: '' }
+  - { id: 1163, class: sgpr, preferred-register: '' }
+  - { id: 1164, class: sgpr, preferred-register: '' }
+  - { id: 1165, class: sreg_32, preferred-register: '' }
+  - { id: 1166, class: sgpr, preferred-register: '' }
+  - { id: 1167, class: sgpr, preferred-register: '' }
+  - { id: 1168, class: sreg_32, preferred-register: '' }
+  - { id: 1169, class: sgpr, preferred-register: '' }
+  - { id: 1170, class: sgpr, preferred-register: '' }
+  - { id: 1171, class: sreg_32, preferred-register: '' }
+  - { id: 1172, class: sgpr, preferred-register: '' }
+  - { id: 1173, class: sgpr, preferred-register: '' }
+  - { id: 1174, class: sreg_32, preferred-register: '' }
+  - { id: 1175, class: sgpr, preferred-register: '' }
+  - { id: 1176, class: sgpr, preferred-register: '' }
+  - { id: 1177, class: sreg_32, preferred-register: '' }
+  - { id: 1178, class: sgpr, preferred-register: '' }
+  - { id: 1179, class: sgpr, preferred-register: '' }
+  - { id: 1180, class: sreg_32, preferred-register: '' }
+  - { id: 1181, class: sreg_32, preferred-register: '' }
+  - { id: 1182, class: sgpr, preferred-register: '' }
+  - { id: 1183, class: sgpr, preferred-register: '' }
+  - { id: 1184, class: sreg_32, preferred-register: '' }
+  - { id: 1185, class: sgpr, preferred-register: '' }
+  - { id: 1186, class: sreg_32, preferred-register: '' }
+  - { id: 1187, class: sreg_32, preferred-register: '' }
+  - { id: 1188, class: sreg_32, preferred-register: '' }
+  - { id: 1189, class: sgpr, preferred-register: '' }
+  - { id: 1190, class: sgpr, preferred-register: '' }
+  - { id: 1191, class: sreg_32, preferred-register: '' }
+  - { id: 1192, class: sreg_32, preferred-register: '' }
+  - { id: 1193, class: sgpr, preferred-register: '' }
+  - { id: 1194, class: sreg_32, preferred-register: '' }
+  - { id: 1195, class: sreg_32, preferred-register: '' }
+  - { id: 1196, class: sreg_32, preferred-register: '' }
+  - { id: 1197, class: sgpr, preferred-register: '' }
+  - { id: 1198, class: sgpr, preferred-register: '' }
+  - { id: 1199, class: sreg_32, preferred-register: '' }
+  - { id: 1200, class: sreg_32, preferred-register: '' }
+  - { id: 1201, class: sgpr, preferred-register: '' }
+  - { id: 1202, class: sreg_32, preferred-register: '' }
+  - { id: 1203, class: sreg_32, preferred-register: '' }
+  - { id: 1204, class: sreg_32, preferred-register: '' }
+  - { id: 1205, class: sgpr, preferred-register: '' }
+  - { id: 1206, class: sgpr, preferred-register: '' }
+  - { id: 1207, class: sreg_32, preferred-register: '' }
+  - { id: 1208, class: sreg_32, preferred-register: '' }
+  - { id: 1209, class: sgpr, preferred-register: '' }
+  - { id: 1210, class: sreg_32, preferred-register: '' }
+  - { id: 1211, class: sreg_32, preferred-register: '' }
+  - { id: 1212, class: sreg_32, preferred-register: '' }
+  - { id: 1213, class: sgpr, preferred-register: '' }
+  - { id: 1214, class: sgpr, preferred-register: '' }
+  - { id: 1215, class: sreg_32, preferred-register: '' }
+  - { id: 1216, class: sreg_32, preferred-register: '' }
+  - { id: 1217, class: sgpr, preferred-register: '' }
+  - { id: 1218, class: sreg_32, preferred-register: '' }
+  - { id: 1219, class: sreg_32, preferred-register: '' }
+  - { id: 1220, class: sreg_32, preferred-register: '' }
+  - { id: 1221, class: sgpr, preferred-register: '' }
+  - { id: 1222, class: sgpr, preferred-register: '' }
+  - { id: 1223, class: sreg_32, preferred-register: '' }
+  - { id: 1224, class: sreg_32, preferred-register: '' }
+  - { id: 1225, class: sgpr, preferred-register: '' }
+  - { id: 1226, class: sreg_32, preferred-register: '' }
+  - { id: 1227, class: sreg_32, preferred-register: '' }
+  - { id: 1228, class: sreg_32, preferred-register: '' }
+  - { id: 1229, class: sgpr, preferred-register: '' }
+  - { id: 1230, class: sgpr, preferred-register: '' }
+  - { id: 1231, class: sreg_32, preferred-register: '' }
+  - { id: 1232, class: sreg_32, preferred-register: '' }
+  - { id: 1233, class: sgpr, preferred-register: '' }
+  - { id: 1234, class: sreg_32, preferred-register: '' }
+  - { id: 1235, class: sreg_32, preferred-register: '' }
+  - { id: 1236, class: sgpr, preferred-register: '' }
+  - { id: 1237, class: sreg_32, preferred-register: '' }
+  - { id: 1238, class: sreg_32, preferred-register: '' }
+  - { id: 1239, class: sreg_32, preferred-register: '' }
+  - { id: 1240, class: sgpr, preferred-register: '' }
+  - { id: 1241, class: sgpr, preferred-register: '' }
+  - { id: 1242, class: sreg_32, preferred-register: '' }
+  - { id: 1243, class: sreg_32, preferred-register: '' }
+  - { id: 1244, class: sgpr, preferred-register: '' }
+  - { id: 1245, class: sgpr, preferred-register: '' }
+  - { id: 1246, class: sreg_32, preferred-register: '' }
+  - { id: 1247, class: sgpr, preferred-register: '' }
+  - { id: 1248, class: sreg_32, preferred-register: '' }
+  - { id: 1249, class: sreg_32, preferred-register: '' }
+  - { id: 1250, class: sreg_32, preferred-register: '' }
+  - { id: 1251, class: sgpr, preferred-register: '' }
+  - { id: 1252, class: sgpr, preferred-register: '' }
+  - { id: 1253, class: sreg_32, preferred-register: '' }
+  - { id: 1254, class: sreg_32, preferred-register: '' }
+  - { id: 1255, class: sgpr, preferred-register: '' }
+  - { id: 1256, class: sgpr, preferred-register: '' }
+  - { id: 1257, class: sreg_32, preferred-register: '' }
+  - { id: 1258, class: sgpr, preferred-register: '' }
+  - { id: 1259, class: sreg_32, preferred-register: '' }
+  - { id: 1260, class: sreg_32, preferred-register: '' }
+  - { id: 1261, class: sreg_32, preferred-register: '' }
+  - { id: 1262, class: sgpr, preferred-register: '' }
+  - { id: 1263, class: sgpr, preferred-register: '' }
+  - { id: 1264, class: sreg_32, preferred-register: '' }
+  - { id: 1265, class: sreg_32, preferred-register: '' }
+  - { id: 1266, class: sgpr, preferred-register: '' }
+  - { id: 1267, class: sgpr, preferred-register: '' }
+  - { id: 1268, class: sreg_32, preferred-register: '' }
+  - { id: 1269, class: sgpr, preferred-register: '' }
+  - { id: 1270, class: sreg_32, preferred-register: '' }
+  - { id: 1271, class: sreg_32, preferred-register: '' }
+  - { id: 1272, class: sreg_32, preferred-register: '' }
+  - { id: 1273, class: sgpr, preferred-register: '' }
+  - { id: 1274, class: sgpr, preferred-register: '' }
+  - { id: 1275, class: sreg_32, preferred-register: '' }
+  - { id: 1276, class: sreg_32, preferred-register: '' }
+  - { id: 1277, class: sgpr, preferred-register: '' }
+  - { id: 1278, class: sgpr, preferred-register: '' }
+  - { id: 1279, class: sreg_32, preferred-register: '' }
+  - { id: 1280, class: sgpr, preferred-register: '' }
+  - { id: 1281, class: sreg_32, preferred-register: '' }
+  - { id: 1282, class: sreg_32, preferred-register: '' }
+  - { id: 1283, class: sreg_32, preferred-register: '' }
+  - { id: 1284, class: sgpr, preferred-register: '' }
+  - { id: 1285, class: sgpr, preferred-register: '' }
+  - { id: 1286, class: sreg_32, preferred-register: '' }
+  - { id: 1287, class: sreg_32, preferred-register: '' }
+  - { id: 1288, class: sgpr, preferred-register: '' }
+  - { id: 1289, class: sgpr, preferred-register: '' }
+  - { id: 1290, class: sreg_32, preferred-register: '' }
+  - { id: 1291, class: sgpr, preferred-register: '' }
+  - { id: 1292, class: sreg_32, preferred-register: '' }
+  - { id: 1293, class: sreg_32, preferred-register: '' }
+  - { id: 1294, class: sreg_32, preferred-register: '' }
+  - { id: 1295, class: sgpr, preferred-register: '' }
+  - { id: 1296, class: sgpr, preferred-register: '' }
+  - { id: 1297, class: sreg_32, preferred-register: '' }
+  - { id: 1298, class: sreg_32, preferred-register: '' }
+  - { id: 1299, class: sgpr, preferred-register: '' }
+  - { id: 1300, class: sgpr, preferred-register: '' }
+  - { id: 1301, class: sreg_32, preferred-register: '' }
+  - { id: 1302, class: sgpr, preferred-register: '' }
+  - { id: 1303, class: sreg_32, preferred-register: '' }
+  - { id: 1304, class: sreg_32, preferred-register: '' }
+  - { id: 1305, class: sreg_32, preferred-register: '' }
+  - { id: 1306, class: sgpr, preferred-register: '' }
+  - { id: 1307, class: sgpr, preferred-register: '' }
+  - { id: 1308, class: sreg_32, preferred-register: '' }
+  - { id: 1309, class: sreg_32, preferred-register: '' }
+  - { id: 1310, class: sgpr, preferred-register: '' }
+  - { id: 1311, class: sgpr, preferred-register: '' }
+  - { id: 1312, class: sreg_32, preferred-register: '' }
+  - { id: 1313, class: sgpr, preferred-register: '' }
+  - { id: 1314, class: sreg_32, preferred-register: '' }
+  - { id: 1315, class: sreg_32, preferred-register: '' }
+  - { id: 1316, class: vgpr_32, preferred-register: '' }
+  - { id: 1317, class: vgpr_32, preferred-register: '' }
+  - { id: 1318, class: vgpr_32, preferred-register: '' }
+  - { id: 1319, class: vgpr_32, preferred-register: '' }
+  - { id: 1320, class: vgpr, preferred-register: '' }
+  - { id: 1321, class: vgpr_32, preferred-register: '' }
+  - { id: 1322, class: vgpr, preferred-register: '' }
+  - { id: 1323, class: vgpr_32, preferred-register: '' }
+  - { id: 1324, class: vgpr_32, preferred-register: '' }
+  - { id: 1325, class: vgpr_32, preferred-register: '' }
+  - { id: 1326, class: vgpr_32, preferred-register: '' }
+  - { id: 1327, class: vgpr, preferred-register: '' }
+  - { id: 1328, class: vgpr_32, preferred-register: '' }
+  - { id: 1329, class: vreg_128, preferred-register: '' }
+  - { id: 1330, class: vgpr_32, preferred-register: '' }
+  - { id: 1331, class: vgpr_32, preferred-register: '' }
+  - { id: 1332, class: vgpr_32, preferred-register: '' }
+  - { id: 1333, class: vgpr_32, preferred-register: '' }
+  - { id: 1334, class: sreg_32, preferred-register: '' }
+  - { id: 1335, class: sreg_32, preferred-register: '' }
+  - { id: 1336, class: sreg_32, preferred-register: '' }
+  - { id: 1337, class: sreg_32, preferred-register: '' }
+  - { id: 1338, class: vgpr, preferred-register: '' }
+  - { id: 1339, class: vgpr_32, preferred-register: '' }
+  - { id: 1340, class: vreg_128, preferred-register: '' }
+  - { id: 1341, class: vgpr_32, preferred-register: '' }
+  - { id: 1342, class: vgpr_32, preferred-register: '' }
+  - { id: 1343, class: vgpr_32, preferred-register: '' }
+  - { id: 1344, class: vgpr_32, preferred-register: '' }
+  - { id: 1345, class: sreg_32, preferred-register: '' }
+  - { id: 1346, class: sreg_32, preferred-register: '' }
+  - { id: 1347, class: sreg_32, preferred-register: '' }
+  - { id: 1348, class: sreg_32, preferred-register: '' }
+  - { id: 1349, class: sreg_32, preferred-register: '' }
+  - { id: 1350, class: sreg_32, preferred-register: '' }
+  - { id: 1351, class: sreg_32, preferred-register: '' }
+  - { id: 1352, class: sreg_32, preferred-register: '' }
+  - { id: 1353, class: sgpr, preferred-register: '' }
+  - { id: 1354, class: sgpr, preferred-register: '' }
+  - { id: 1355, class: sreg_32, preferred-register: '' }
+  - { id: 1356, class: sgpr, preferred-register: '' }
+  - { id: 1357, class: sgpr, preferred-register: '' }
+  - { id: 1358, class: sreg_32, preferred-register: '' }
+  - { id: 1359, class: sgpr, preferred-register: '' }
+  - { id: 1360, class: sgpr, preferred-register: '' }
+  - { id: 1361, class: sreg_32, preferred-register: '' }
+  - { id: 1362, class: sreg_32, preferred-register: '' }
+  - { id: 1363, class: sreg_32, preferred-register: '' }
+  - { id: 1364, class: sgpr, preferred-register: '' }
+  - { id: 1365, class: sreg_32, preferred-register: '' }
+  - { id: 1366, class: sreg_32, preferred-register: '' }
+  - { id: 1367, class: vgpr_32, preferred-register: '' }
+  - { id: 1368, class: sgpr, preferred-register: '' }
+  - { id: 1369, class: sreg_64_xexec, preferred-register: '' }
+  - { id: 1370, class: sgpr, preferred-register: '' }
+  - { id: 1371, class: sreg_64_xexec, preferred-register: '' }
+  - { id: 1372, class: sreg_32, preferred-register: '' }
+  - { id: 1373, class: sgpr, preferred-register: '' }
+  - { id: 1374, class: sreg_32, preferred-register: '' }
+  - { id: 1375, class: sreg_32, preferred-register: '' }
+  - { id: 1376, class: sreg_32, preferred-register: '' }
+  - { id: 1377, class: sreg_32, preferred-register: '' }
+  - { id: 1378, class: sgpr, preferred-register: '' }
+  - { id: 1379, class: sreg_32, preferred-register: '' }
+  - { id: 1380, class: sreg_32, preferred-register: '' }
+  - { id: 1381, class: sreg_32, preferred-register: '' }
+  - { id: 1382, class: sgpr, preferred-register: '' }
+  - { id: 1383, class: sreg_32, preferred-register: '' }
+  - { id: 1384, class: sreg_32, preferred-register: '' }
+  - { id: 1385, class: sreg_32, preferred-register: '' }
+  - { id: 1386, class: sreg_32, preferred-register: '' }
+  - { id: 1387, class: sgpr, preferred-register: '' }
+  - { id: 1388, class: sreg_32, preferred-register: '' }
+  - { id: 1389, class: sreg_32, preferred-register: '' }
+  - { id: 1390, class: sreg_32, preferred-register: '' }
+  - { id: 1391, class: sgpr, preferred-register: '' }
+  - { id: 1392, class: sreg_32, preferred-register: '' }
+  - { id: 1393, class: sreg_32, preferred-register: '' }
+  - { id: 1394, class: sreg_32, preferred-register: '' }
+  - { id: 1395, class: sreg_32, preferred-register: '' }
+  - { id: 1396, class: sgpr, preferred-register: '' }
+  - { id: 1397, class: sreg_32, preferred-register: '' }
+  - { id: 1398, class: sreg_32, preferred-register: '' }
+  - { id: 1399, class: sreg_32, preferred-register: '' }
+  - { id: 1400, class: sreg_32, preferred-register: '' }
+  - { id: 1401, class: sreg_32, preferred-register: '' }
+  - { id: 1402, class: sgpr, preferred-register: '' }
+  - { id: 1403, class: sreg_32, preferred-register: '' }
+  - { id: 1404, class: sreg_32, preferred-register: '' }
+  - { id: 1405, class: sreg_32, preferred-register: '' }
+  - { id: 1406, class: sgpr, preferred-register: '' }
+  - { id: 1407, class: sreg_32, preferred-register: '' }
+  - { id: 1408, class: sreg_32, preferred-register: '' }
+  - { id: 1409, class: sreg_32, preferred-register: '' }
+  - { id: 1410, class: sreg_32, preferred-register: '' }
+  - { id: 1411, class: sgpr, preferred-register: '' }
+  - { id: 1412, class: sreg_32, preferred-register: '' }
+  - { id: 1413, class: sreg_32, preferred-register: '' }
+  - { id: 1414, class: sreg_32, preferred-register: '' }
+  - { id: 1415, class: sgpr, preferred-register: '' }
+  - { id: 1416, class: sreg_32, preferred-register: '' }
+  - { id: 1417, class: sreg_32, preferred-register: '' }
+  - { id: 1418, class: sreg_32, preferred-register: '' }
+  - { id: 1419, class: sreg_32, preferred-register: '' }
+  - { id: 1420, class: sgpr, preferred-register: '' }
+  - { id: 1421, class: sreg_32, preferred-register: '' }
+  - { id: 1422, class: sreg_32, preferred-register: '' }
+  - { id: 1423, class: sreg_32, preferred-register: '' }
+  - { id: 1424, class: sgpr, preferred-register: '' }
+  - { id: 1425, class: sreg_32, preferred-register: '' }
+  - { id: 1426, class: sreg_32, preferred-register: '' }
+  - { id: 1427, class: sreg_32, preferred-register: '' }
+  - { id: 1428, class: sreg_32, preferred-register: '' }
+  - { id: 1429, class: sgpr, preferred-register: '' }
+  - { id: 1430, class: sreg_32, preferred-register: '' }
+  - { id: 1431, class: sreg_32, preferred-register: '' }
+  - { id: 1432, class: sreg_32, preferred-register: '' }
+  - { id: 1433, class: sgpr, preferred-register: '' }
+  - { id: 1434, class: sreg_32, preferred-register: '' }
+  - { id: 1435, class: sreg_32, preferred-register: '' }
+  - { id: 1436, class: sreg_32, preferred-register: '' }
+  - { id: 1437, class: sgpr, preferred-register: '' }
+  - { id: 1438, class: sreg_32, preferred-register: '' }
+  - { id: 1439, class: sreg_32, preferred-register: '' }
+  - { id: 1440, class: sreg_32, preferred-register: '' }
+  - { id: 1441, class: sgpr, preferred-register: '' }
+  - { id: 1442, class: sreg_32, preferred-register: '' }
+  - { id: 1443, class: sreg_32, preferred-register: '' }
+  - { id: 1444, class: sreg_32, preferred-register: '' }
+  - { id: 1445, class: sgpr, preferred-register: '' }
+  - { id: 1446, class: sgpr, preferred-register: '' }
+  - { id: 1447, class: sreg_32, preferred-register: '' }
+  - { id: 1448, class: sgpr, preferred-register: '' }
+  - { id: 1449, class: sgpr, preferred-register: '' }
+  - { id: 1450, class: sreg_32, preferred-register: '' }
+  - { id: 1451, class: sreg_32, preferred-register: '' }
+  - { id: 1452, class: sgpr, preferred-register: '' }
+  - { id: 1453, class: sgpr, preferred-register: '' }
+  - { id: 1454, class: sreg_32, preferred-register: '' }
+  - { id: 1455, class: sgpr, preferred-register: '' }
+  - { id: 1456, class: sgpr, preferred-register: '' }
+  - { id: 1457, class: sreg_32, preferred-register: '' }
+  - { id: 1458, class: sgpr, preferred-register: '' }
+  - { id: 1459, class: sgpr, preferred-register: '' }
+  - { id: 1460, class: sreg_32, preferred-register: '' }
+  - { id: 1461, class: sreg_32, preferred-register: '' }
+  - { id: 1462, class: sgpr, preferred-register: '' }
+  - { id: 1463, class: sgpr, preferred-register: '' }
+  - { id: 1464, class: sreg_32, preferred-register: '' }
+  - { id: 1465, class: sgpr, preferred-register: '' }
+  - { id: 1466, class: sgpr, preferred-register: '' }
+  - { id: 1467, class: sreg_32, preferred-register: '' }
+  - { id: 1468, class: sgpr, preferred-register: '' }
+  - { id: 1469, class: sgpr, preferred-register: '' }
+  - { id: 1470, class: sreg_32, preferred-register: '' }
+  - { id: 1471, class: sgpr, preferred-register: '' }
+  - { id: 1472, class: sgpr, preferred-register: '' }
+  - { id: 1473, class: sreg_32, preferred-register: '' }
+  - { id: 1474, class: sreg_32, preferred-register: '' }
+  - { id: 1475, class: sgpr, preferred-register: '' }
+  - { id: 1476, class: sgpr, preferred-register: '' }
+  - { id: 1477, class: sreg_32, preferred-register: '' }
+  - { id: 1478, class: sgpr, preferred-register: '' }
+  - { id: 1479, class: sgpr, preferred-register: '' }
+  - { id: 1480, class: sreg_32, preferred-register: '' }
+  - { id: 1481, class: sgpr, preferred-register: '' }
+  - { id: 1482, class: sgpr, preferred-register: '' }
+  - { id: 1483, class: sreg_32, preferred-register: '' }
+  - { id: 1484, class: sgpr, preferred-register: '' }
+  - { id: 1485, class: sgpr, preferred-register: '' }
+  - { id: 1486, class: sreg_32, preferred-register: '' }
+  - { id: 1487, class: sgpr, preferred-register: '' }
+  - { id: 1488, class: sgpr, preferred-register: '' }
+  - { id: 1489, class: sreg_32, preferred-register: '' }
+  - { id: 1490, class: sreg_32, preferred-register: '' }
+  - { id: 1491, class: sgpr, preferred-register: '' }
+  - { id: 1492, class: sgpr, preferred-register: '' }
+  - { id: 1493, class: sreg_32, preferred-register: '' }
+  - { id: 1494, class: sgpr, preferred-register: '' }
+  - { id: 1495, class: sgpr, preferred-register: '' }
+  - { id: 1496, class: sreg_32, preferred-register: '' }
+  - { id: 1497, class: sgpr, preferred-register: '' }
+  - { id: 1498, class: sgpr, preferred-register: '' }
+  - { id: 1499, class: sreg_32, preferred-register: '' }
+  - { id: 1500, class: sgpr, preferred-register: '' }
+  - { id: 1501, class: sgpr, preferred-register: '' }
+  - { id: 1502, class: sreg_32, preferred-register: '' }
+  - { id: 1503, class: sgpr, preferred-register: '' }
+  - { id: 1504, class: sgpr, preferred-register: '' }
+  - { id: 1505, class: sreg_32, preferred-register: '' }
+  - { id: 1506, class: sgpr, preferred-register: '' }
+  - { id: 1507, class: sgpr, preferred-register: '' }
+  - { id: 1508, class: sreg_32, preferred-register: '' }
+  - { id: 1509, class: sreg_32, preferred-register: '' }
+  - { id: 1510, class: sgpr, preferred-register: '' }
+  - { id: 1511, class: sgpr, preferred-register: '' }
+  - { id: 1512, class: sreg_32, preferred-register: '' }
+  - { id: 1513, class: sgpr, preferred-register: '' }
+  - { id: 1514, class: sgpr, preferred-register: '' }
+  - { id: 1515, class: sreg_32, preferred-register: '' }
+  - { id: 1516, class: sgpr, preferred-register: '' }
+  - { id: 1517, class: sgpr, preferred-register: '' }
+  - { id: 1518, class: sreg_32, preferred-register: '' }
+  - { id: 1519, class: sgpr, preferred-register: '' }
+  - { id: 1520, class: sgpr, preferred-register: '' }
+  - { id: 1521, class: sreg_32, preferred-register: '' }
+  - { id: 1522, class: sgpr, preferred-register: '' }
+  - { id: 1523, class: sgpr, preferred-register: '' }
+  - { id: 1524, class: sreg_32, preferred-register: '' }
+  - { id: 1525, class: sgpr, preferred-register: '' }
+  - { id: 1526, class: sgpr, preferred-register: '' }
+  - { id: 1527, class: sreg_32, preferred-register: '' }
+  - { id: 1528, class: sgpr, preferred-register: '' }
+  - { id: 1529, class: sgpr, preferred-register: '' }
+  - { id: 1530, class: sreg_32, preferred-register: '' }
+  - { id: 1531, class: sreg_32, preferred-register: '' }
+  - { id: 1532, class: sgpr, preferred-register: '' }
+  - { id: 1533, class: sgpr, preferred-register: '' }
+  - { id: 1534, class: sreg_32, preferred-register: '' }
+  - { id: 1535, class: sgpr, preferred-register: '' }
+  - { id: 1536, class: sgpr, preferred-register: '' }
+  - { id: 1537, class: sreg_32, preferred-register: '' }
+  - { id: 1538, class: sgpr, preferred-register: '' }
+  - { id: 1539, class: sgpr, preferred-register: '' }
+  - { id: 1540, class: sreg_32, preferred-register: '' }
+  - { id: 1541, class: sgpr, preferred-register: '' }
+  - { id: 1542, class: sgpr, preferred-register: '' }
+  - { id: 1543, class: sreg_32, preferred-register: '' }
+  - { id: 1544, class: sgpr, preferred-register: '' }
+  - { id: 1545, class: sgpr, preferred-register: '' }
+  - { id: 1546, class: sreg_32, preferred-register: '' }
+  - { id: 1547, class: sgpr, preferred-register: '' }
+  - { id: 1548, class: sgpr, preferred-register: '' }
+  - { id: 1549, class: sreg_32, preferred-register: '' }
+  - { id: 1550, class: sgpr, preferred-register: '' }
+  - { id: 1551, class: sgpr, preferred-register: '' }
+  - { id: 1552, class: sreg_32, preferred-register: '' }
+  - { id: 1553, class: sgpr, preferred-register: '' }
+  - { id: 1554, class: sgpr, preferred-register: '' }
+  - { id: 1555, class: sreg_32, preferred-register: '' }
+  - { id: 1556, class: sreg_32, preferred-register: '' }
+  - { id: 1557, class: sgpr, preferred-register: '' }
+  - { id: 1558, class: sgpr, preferred-register: '' }
+  - { id: 1559, class: sreg_32, preferred-register: '' }
+  - { id: 1560, class: sgpr, preferred-register: '' }
+  - { id: 1561, class: sgpr, preferred-register: '' }
+  - { id: 1562, class: sreg_32, preferred-register: '' }
+  - { id: 1563, class: sgpr, preferred-register: '' }
+  - { id: 1564, class: sgpr, preferred-register: '' }
+  - { id: 1565, class: sreg_32, preferred-register: '' }
+  - { id: 1566, class: sgpr, preferred-register: '' }
+  - { id: 1567, class: sgpr, preferred-register: '' }
+  - { id: 1568, class: sreg_32, preferred-register: '' }
+  - { id: 1569, class: sgpr, preferred-register: '' }
+  - { id: 1570, class: sgpr, preferred-register: '' }
+  - { id: 1571, class: sreg_32, preferred-register: '' }
+  - { id: 1572, class: sgpr, preferred-register: '' }
+  - { id: 1573, class: sgpr, preferred-register: '' }
+  - { id: 1574, class: sreg_32, preferred-register: '' }
+  - { id: 1575, class: sgpr, preferred-register: '' }
+  - { id: 1576, class: sgpr, preferred-register: '' }
+  - { id: 1577, class: sreg_32, preferred-register: '' }
+  - { id: 1578, class: sgpr, preferred-register: '' }
+  - { id: 1579, class: sgpr, preferred-register: '' }
+  - { id: 1580, class: sreg_32, preferred-register: '' }
+  - { id: 1581, class: sgpr, preferred-register: '' }
+  - { id: 1582, class: sgpr, preferred-register: '' }
+  - { id: 1583, class: sreg_32, preferred-register: '' }
+  - { id: 1584, class: sgpr, preferred-register: '' }
+  - { id: 1585, class: sreg_32, preferred-register: '' }
+  - { id: 1586, class: sreg_32, preferred-register: '' }
+  - { id: 1587, class: sgpr, preferred-register: '' }
+  - { id: 1588, class: sreg_32, preferred-register: '' }
+  - { id: 1589, class: sgpr, preferred-register: '' }
+  - { id: 1590, class: sreg_32, preferred-register: '' }
+  - { id: 1591, class: sgpr, preferred-register: '' }
+  - { id: 1592, class: sreg_32, preferred-register: '' }
+  - { id: 1593, class: sgpr, preferred-register: '' }
+  - { id: 1594, class: sreg_32, preferred-register: '' }
+  - { id: 1595, class: sgpr, preferred-register: '' }
+  - { id: 1596, class: sreg_32, preferred-register: '' }
+  - { id: 1597, class: sgpr, preferred-register: '' }
+  - { id: 1598, class: sreg_32, preferred-register: '' }
+  - { id: 1599, class: sgpr, preferred-register: '' }
+  - { id: 1600, class: sreg_32, preferred-register: '' }
+  - { id: 1601, class: sgpr, preferred-register: '' }
+  - { id: 1602, class: sreg_32, preferred-register: '' }
+  - { id: 1603, class: sreg_32, preferred-register: '' }
+  - { id: 1604, class: sgpr, preferred-register: '' }
+  - { id: 1605, class: sgpr, preferred-register: '' }
+  - { id: 1606, class: sreg_32, preferred-register: '' }
+  - { id: 1607, class: sgpr, preferred-register: '' }
+  - { id: 1608, class: sgpr, preferred-register: '' }
+  - { id: 1609, class: sreg_32, preferred-register: '' }
+  - { id: 1610, class: sgpr, preferred-register: '' }
+  - { id: 1611, class: sgpr, preferred-register: '' }
+  - { id: 1612, class: sreg_32, preferred-register: '' }
+  - { id: 1613, class: sgpr, preferred-register: '' }
+  - { id: 1614, class: sgpr, preferred-register: '' }
+  - { id: 1615, class: sreg_32, preferred-register: '' }
+  - { id: 1616, class: sgpr, preferred-register: '' }
+  - { id: 1617, class: sgpr, preferred-register: '' }
+  - { id: 1618, class: sreg_32, preferred-register: '' }
+  - { id: 1619, class: sgpr, preferred-register: '' }
+  - { id: 1620, class: sgpr, preferred-register: '' }
+  - { id: 1621, class: sreg_32, preferred-register: '' }
+  - { id: 1622, class: sgpr, preferred-register: '' }
+  - { id: 1623, class: sgpr, preferred-register: '' }
+  - { id: 1624, class: sreg_32, preferred-register: '' }
+  - { id: 1625, class: sreg_32, preferred-register: '' }
+  - { id: 1626, class: sgpr, preferred-register: '' }
+  - { id: 1627, class: sgpr, preferred-register: '' }
+  - { id: 1628, class: sreg_32, preferred-register: '' }
+  - { id: 1629, class: sgpr, preferred-register: '' }
+  - { id: 1630, class: sreg_32, preferred-register: '' }
+  - { id: 1631, class: sreg_32, preferred-register: '' }
+  - { id: 1632, class: sreg_32, preferred-register: '' }
+  - { id: 1633, class: sgpr, preferred-register: '' }
+  - { id: 1634, class: sgpr, preferred-register: '' }
+  - { id: 1635, class: sreg_32, preferred-register: '' }
+  - { id: 1636, class: sreg_32, preferred-register: '' }
+  - { id: 1637, class: sgpr, preferred-register: '' }
+  - { id: 1638, class: sreg_32, preferred-register: '' }
+  - { id: 1639, class: sreg_32, preferred-register: '' }
+  - { id: 1640, class: sreg_32, preferred-register: '' }
+  - { id: 1641, class: sgpr, preferred-register: '' }
+  - { id: 1642, class: sgpr, preferred-register: '' }
+  - { id: 1643, class: sreg_32, preferred-register: '' }
+  - { id: 1644, class: sreg_32, preferred-register: '' }
+  - { id: 1645, class: sgpr, preferred-register: '' }
+  - { id: 1646, class: sreg_32, preferred-register: '' }
+  - { id: 1647, class: sreg_32, preferred-register: '' }
+  - { id: 1648, class: sreg_32, preferred-register: '' }
+  - { id: 1649, class: sgpr, preferred-register: '' }
+  - { id: 1650, class: sgpr, preferred-register: '' }
+  - { id: 1651, class: sreg_32, preferred-register: '' }
+  - { id: 1652, class: sreg_32, preferred-register: '' }
+  - { id: 1653, class: sgpr, preferred-register: '' }
+  - { id: 1654, class: sreg_32, preferred-register: '' }
+  - { id: 1655, class: sreg_32, preferred-register: '' }
+  - { id: 1656, class: sreg_32, preferred-register: '' }
+  - { id: 1657, class: sgpr, preferred-register: '' }
+  - { id: 1658, class: sgpr, preferred-register: '' }
+  - { id: 1659, class: sreg_32, preferred-register: '' }
+  - { id: 1660, class: sreg_32, preferred-register: '' }
+  - { id: 1661, class: sgpr, preferred-register: '' }
+  - { id: 1662, class: sreg_32, preferred-register: '' }
+  - { id: 1663, class: sreg_32, preferred-register: '' }
+  - { id: 1664, class: sreg_32, preferred-register: '' }
+  - { id: 1665, class: sgpr, preferred-register: '' }
+  - { id: 1666, class: sgpr, preferred-register: '' }
+  - { id: 1667, class: sreg_32, preferred-register: '' }
+  - { id: 1668, class: sreg_32, preferred-register: '' }
+  - { id: 1669, class: sgpr, preferred-register: '' }
+  - { id: 1670, class: sreg_32, preferred-register: '' }
+  - { id: 1671, class: sreg_32, preferred-register: '' }
+  - { id: 1672, class: sreg_32, preferred-register: '' }
+  - { id: 1673, class: sgpr, preferred-register: '' }
+  - { id: 1674, class: sgpr, preferred-register: '' }
+  - { id: 1675, class: sreg_32, preferred-register: '' }
+  - { id: 1676, class: sreg_32, preferred-register: '' }
+  - { id: 1677, class: sgpr, preferred-register: '' }
+  - { id: 1678, class: sreg_32, preferred-register: '' }
+  - { id: 1679, class: sreg_32, preferred-register: '' }
+  - { id: 1680, class: sgpr, preferred-register: '' }
+  - { id: 1681, class: sreg_32, preferred-register: '' }
+  - { id: 1682, class: sreg_32, preferred-register: '' }
+  - { id: 1683, class: sreg_32, preferred-register: '' }
+  - { id: 1684, class: sgpr, preferred-register: '' }
+  - { id: 1685, class: sgpr, preferred-register: '' }
+  - { id: 1686, class: sreg_32, preferred-register: '' }
+  - { id: 1687, class: sreg_32, preferred-register: '' }
+  - { id: 1688, class: sgpr, preferred-register: '' }
+  - { id: 1689, class: sgpr, preferred-register: '' }
+  - { id: 1690, class: sreg_32, preferred-register: '' }
+  - { id: 1691, class: sgpr, preferred-register: '' }
+  - { id: 1692, class: sreg_32, preferred-register: '' }
+  - { id: 1693, class: sreg_32, preferred-register: '' }
+  - { id: 1694, class: sreg_32, preferred-register: '' }
+  - { id: 1695, class: sgpr, preferred-register: '' }
+  - { id: 1696, class: sgpr, preferred-register: '' }
+  - { id: 1697, class: sreg_32, preferred-register: '' }
+  - { id: 1698, class: sreg_32, preferred-register: '' }
+  - { id: 1699, class: sgpr, preferred-register: '' }
+  - { id: 1700, class: sgpr, preferred-register: '' }
+  - { id: 1701, class: sreg_32, preferred-register: '' }
+  - { id: 1702, class: sgpr, preferred-register: '' }
+  - { id: 1703, class: sreg_32, preferred-register: '' }
+  - { id: 1704, class: sreg_32, preferred-register: '' }
+  - { id: 1705, class: sreg_32, preferred-register: '' }
+  - { id: 1706, class: sgpr, preferred-register: '' }
+  - { id: 1707, class: sgpr, preferred-register: '' }
+  - { id: 1708, class: sreg_32, preferred-register: '' }
+  - { id: 1709, class: sreg_32, preferred-register: '' }
+  - { id: 1710, class: sgpr, preferred-register: '' }
+  - { id: 1711, class: sgpr, preferred-register: '' }
+  - { id: 1712, class: sreg_32, preferred-register: '' }
+  - { id: 1713, class: sgpr, preferred-register: '' }
+  - { id: 1714, class: sreg_32, preferred-register: '' }
+  - { id: 1715, class: sreg_32, preferred-register: '' }
+  - { id: 1716, class: sreg_32, preferred-register: '' }
+  - { id: 1717, class: sgpr, preferred-register: '' }
+  - { id: 1718, class: sgpr, preferred-register: '' }
+  - { id: 1719, class: sreg_32, preferred-register: '' }
+  - { id: 1720, class: sreg_32, preferred-register: '' }
+  - { id: 1721, class: sgpr, preferred-register: '' }
+  - { id: 1722, class: sgpr, preferred-register: '' }
+  - { id: 1723, class: sreg_32, preferred-register: '' }
+  - { id: 1724, class: sgpr, preferred-register: '' }
+  - { id: 1725, class: sreg_32, preferred-register: '' }
+  - { id: 1726, class: sreg_32, preferred-register: '' }
+  - { id: 1727, class: sreg_32, preferred-register: '' }
+  - { id: 1728, class: sgpr, preferred-register: '' }
+  - { id: 1729, class: sgpr, preferred-register: '' }
+  - { id: 1730, class: sreg_32, preferred-register: '' }
+  - { id: 1731, class: sreg_32, preferred-register: '' }
+  - { id: 1732, class: sgpr, preferred-register: '' }
+  - { id: 1733, class: sgpr, preferred-register: '' }
+  - { id: 1734, class: sreg_32, preferred-register: '' }
+  - { id: 1735, class: sgpr, preferred-register: '' }
+  - { id: 1736, class: sreg_32, preferred-register: '' }
+  - { id: 1737, class: sreg_32, preferred-register: '' }
+  - { id: 1738, class: sreg_32, preferred-register: '' }
+  - { id: 1739, class: sgpr, preferred-register: '' }
+  - { id: 1740, class: sgpr, preferred-register: '' }
+  - { id: 1741, class: sreg_32, preferred-register: '' }
+  - { id: 1742, class: sreg_32, preferred-register: '' }
+  - { id: 1743, class: sgpr, preferred-register: '' }
+  - { id: 1744, class: sgpr, preferred-register: '' }
+  - { id: 1745, class: sreg_32, preferred-register: '' }
+  - { id: 1746, class: sgpr, preferred-register: '' }
+  - { id: 1747, class: sreg_32, preferred-register: '' }
+  - { id: 1748, class: sreg_32, preferred-register: '' }
+  - { id: 1749, class: sreg_32, preferred-register: '' }
+  - { id: 1750, class: sgpr, preferred-register: '' }
+  - { id: 1751, class: sgpr, preferred-register: '' }
+  - { id: 1752, class: sreg_32, preferred-register: '' }
+  - { id: 1753, class: sreg_32, preferred-register: '' }
+  - { id: 1754, class: sgpr, preferred-register: '' }
+  - { id: 1755, class: sgpr, preferred-register: '' }
+  - { id: 1756, class: sreg_32, preferred-register: '' }
+  - { id: 1757, class: sgpr, preferred-register: '' }
+  - { id: 1758, class: sreg_32, preferred-register: '' }
+  - { id: 1759, class: sreg_32, preferred-register: '' }
+  - { id: 1760, class: vgpr, preferred-register: '' }
+  - { id: 1761, class: vgpr_32, preferred-register: '' }
+  - { id: 1762, class: vreg_128, preferred-register: '' }
+  - { id: 1763, class: vgpr_32, preferred-register: '' }
+  - { id: 1764, class: vgpr_32, preferred-register: '' }
+  - { id: 1765, class: vgpr_32, preferred-register: '' }
+  - { id: 1766, class: vgpr_32, preferred-register: '' }
+  - { id: 1767, class: sreg_32, preferred-register: '' }
+  - { id: 1768, class: sreg_32, preferred-register: '' }
+  - { id: 1769, class: sreg_32, preferred-register: '' }
+  - { id: 1770, class: sreg_32, preferred-register: '' }
+  - { id: 1771, class: vgpr, preferred-register: '' }
+  - { id: 1772, class: vgpr_32, preferred-register: '' }
+  - { id: 1773, class: vreg_128, preferred-register: '' }
+  - { id: 1774, class: vgpr_32, preferred-register: '' }
+  - { id: 1775, class: vgpr_32, preferred-register: '' }
+  - { id: 1776, class: vgpr_32, preferred-register: '' }
+  - { id: 1777, class: vgpr_32, preferred-register: '' }
+  - { id: 1778, class: sreg_32, preferred-register: '' }
+  - { id: 1779, class: sreg_32, preferred-register: '' }
+  - { id: 1780, class: sreg_32, preferred-register: '' }
+  - { id: 1781, class: sreg_32, preferred-register: '' }
+  - { id: 1782, class: sreg_32, preferred-register: '' }
+  - { id: 1783, class: sreg_32, preferred-register: '' }
+  - { id: 1784, class: sreg_32, preferred-register: '' }
+  - { id: 1785, class: sreg_32, preferred-register: '' }
+  - { id: 1786, class: sgpr, preferred-register: '' }
+  - { id: 1787, class: sgpr, preferred-register: '' }
+  - { id: 1788, class: sreg_32, preferred-register: '' }
+  - { id: 1789, class: sgpr, preferred-register: '' }
+  - { id: 1790, class: sgpr, preferred-register: '' }
+  - { id: 1791, class: sreg_32, preferred-register: '' }
+  - { id: 1792, class: sgpr, preferred-register: '' }
+  - { id: 1793, class: sgpr, preferred-register: '' }
+  - { id: 1794, class: sreg_32, preferred-register: '' }
+  - { id: 1795, class: sreg_32, preferred-register: '' }
+  - { id: 1796, class: sreg_32, preferred-register: '' }
+  - { id: 1797, class: sgpr, preferred-register: '' }
+  - { id: 1798, class: sreg_32, preferred-register: '' }
+  - { id: 1799, class: sreg_32, preferred-register: '' }
+  - { id: 1800, class: vgpr_32, preferred-register: '' }
+  - { id: 1801, class: vgpr_32, preferred-register: '' }
+  - { id: 1802, class: vgpr_32, preferred-register: '' }
+  - { id: 1803, class: vgpr_32, preferred-register: '' }
+  - { id: 1804, class: vgpr, preferred-register: '' }
+  - { id: 1805, class: vgpr_32, preferred-register: '' }
+  - { id: 1806, class: vgpr_32, preferred-register: '' }
+  - { id: 1807, class: vgpr, preferred-register: '' }
+  - { id: 1808, class: vgpr_32, preferred-register: '' }
+  - { id: 1809, class: vgpr_32, preferred-register: '' }
+  - { id: 1810, class: vgpr, preferred-register: '' }
+  - { id: 1811, class: vgpr_32, preferred-register: '' }
+  - { id: 1812, class: vgpr, preferred-register: '' }
+  - { id: 1813, class: sreg_32, preferred-register: '' }
+  - { id: 1814, class: sreg_32, preferred-register: '' }
+  - { id: 1815, class: sreg_32, preferred-register: '' }
+  - { id: 1816, class: sreg_32, preferred-register: '' }
+  - { id: 1817, class: sreg_32, preferred-register: '' }
+  - { id: 1818, class: sreg_32, preferred-register: '' }
+  - { id: 1819, class: sreg_32, preferred-register: '' }
+  - { id: 1820, class: sreg_32, preferred-register: '' }
+  - { id: 1821, class: sreg_32, preferred-register: '' }
+  - { id: 1822, class: sreg_32, preferred-register: '' }
+  - { id: 1823, class: sreg_32, preferred-register: '' }
+  - { id: 1824, class: sreg_32, preferred-register: '' }
+  - { id: 1825, class: sreg_32, preferred-register: '' }
+  - { id: 1826, class: sreg_32, preferred-register: '' }
+  - { id: 1827, class: sreg_32, preferred-register: '' }
+  - { id: 1828, class: sreg_32, preferred-register: '' }
+  - { id: 1829, class: vreg_64, preferred-register: '' }
+  - { id: 1830, class: vgpr_32, preferred-register: '' }
+  - { id: 1831, class: sreg_64, preferred-register: '' }
+  - { id: 1832, class: vreg_64, preferred-register: '' }
+  - { id: 1833, class: sreg_64, preferred-register: '' }
+  - { id: 1834, class: sreg_64, preferred-register: '' }
+  - { id: 1835, class: sreg_64, preferred-register: '' }
+  - { id: 1836, class: sreg_32_xm0, preferred-register: '' }
+  - { id: 1837, class: sreg_32_xm0, preferred-register: '' }
+  - { id: 1838, class: sreg_32, preferred-register: '' }
+  - { id: 1839, class: vreg_64, preferred-register: '' }
+  - { id: 1840, class: vreg_64, preferred-register: '' }
+  - { id: 1841, class: vreg_64, preferred-register: '' }
+  - { id: 1842, class: vreg_64, preferred-register: '' }
+  - { id: 1843, class: vreg_64, preferred-register: '' }
+  - { id: 1844, class: vreg_64, preferred-register: '' }
+  - { id: 1845, class: vreg_64, preferred-register: '' }
+  - { id: 1846, class: vreg_64, preferred-register: '' }
+  - { id: 1847, class: vreg_64, preferred-register: '' }
+  - { id: 1848, class: vreg_64, preferred-register: '' }
+  - { id: 1849, class: vreg_64, preferred-register: '' }
+  - { id: 1850, class: vreg_64, preferred-register: '' }
+  - { id: 1851, class: vreg_64, preferred-register: '' }
+  - { id: 1852, class: vreg_64, preferred-register: '' }
+  - { id: 1853, class: vreg_64, preferred-register: '' }
+  - { id: 1854, class: vreg_64, preferred-register: '' }
+  - { id: 1855, class: sreg_64, preferred-register: '' }
+  - { id: 1856, class: sreg_64, preferred-register: '' }
+  - { id: 1857, class: sreg_32_xm0, preferred-register: '' }
+  - { id: 1858, class: sreg_32_xm0, preferred-register: '' }
+  - { id: 1859, class: sreg_32_xm0, preferred-register: '' }
+  - { id: 1860, class: sreg_32_xm0, preferred-register: '' }
+  - { id: 1861, class: sreg_32_xm0, preferred-register: '' }
+  - { id: 1862, class: sreg_32_xm0, preferred-register: '' }
+  - { id: 1863, class: sreg_32_xm0, preferred-register: '' }
+  - { id: 1864, class: sreg_32, preferred-register: '' }
+  - { id: 1865, class: sreg_32, preferred-register: '' }
+  - { id: 1866, class: sreg_64, preferred-register: '' }
+  - { id: 1867, class: sreg_64, preferred-register: '' }
+  - { id: 1868, class: sreg_64, preferred-register: '' }
+  - { id: 1869, class: sreg_64, preferred-register: '' }
+  - { id: 1870, class: sreg_64, preferred-register: '' }
+  - { id: 1871, class: sreg_64, preferred-register: '' }
+  - { id: 1872, class: sreg_32, preferred-register: '' }
+  - { id: 1873, class: sreg_64, preferred-register: '' }
+  - { id: 1874, class: sreg_32, preferred-register: '' }
+  - { id: 1875, class: sreg_32, preferred-register: '' }
+  - { id: 1876, class: sreg_32, preferred-register: '' }
+  - { id: 1877, class: sreg_32, preferred-register: '' }
+  - { id: 1878, class: sreg_32, preferred-register: '' }
+  - { id: 1879, class: sreg_32, preferred-register: '' }
+  - { id: 1880, class: sreg_32, preferred-register: '' }
+  - { id: 1881, class: sreg_32, preferred-register: '' }
+  - { id: 1882, class: sreg_64, preferred-register: '' }
+  - { id: 1883, class: sreg_64, preferred-register: '' }
+  - { id: 1884, class: sreg_64, preferred-register: '' }
+  - { id: 1885, class: sreg_64, preferred-register: '' }
+  - { id: 1886, class: sreg_64, preferred-register: '' }
+  - { id: 1887, class: sreg_32, preferred-register: '' }
+  - { id: 1888, class: sreg_64, preferred-register: '' }
+  - { id: 1889, class: sreg_32, preferred-register: '' }
+  - { id: 1890, class: sreg_32, preferred-register: '' }
+  - { id: 1891, class: sreg_32, preferred-register: '' }
+  - { id: 1892, class: sreg_32, preferred-register: '' }
+  - { id: 1893, class: sreg_32, preferred-register: '' }
+  - { id: 1894, class: sreg_32, preferred-register: '' }
+  - { id: 1895, class: sreg_32, preferred-register: '' }
+  - { id: 1896, class: sreg_64, preferred-register: '' }
+  - { id: 1897, class: sreg_64, preferred-register: '' }
+  - { id: 1898, class: sreg_64, preferred-register: '' }
+  - { id: 1899, class: sreg_64, preferred-register: '' }
+  - { id: 1900, class: sreg_32, preferred-register: '' }
+  - { id: 1901, class: sreg_64, preferred-register: '' }
+  - { id: 1902, class: sreg_32, preferred-register: '' }
+  - { id: 1903, class: sreg_32, preferred-register: '' }
+  - { id: 1904, class: sreg_32, preferred-register: '' }
+  - { id: 1905, class: sreg_32, preferred-register: '' }
+  - { id: 1906, class: sreg_32, preferred-register: '' }
+  - { id: 1907, class: sreg_32, preferred-register: '' }
+  - { id: 1908, class: sreg_64, preferred-register: '' }
+  - { id: 1909, class: sreg_64, preferred-register: '' }
+  - { id: 1910, class: sreg_64, preferred-register: '' }
+  - { id: 1911, class: sreg_64, preferred-register: '' }
+  - { id: 1912, class: sreg_32, preferred-register: '' }
+  - { id: 1913, class: sreg_64, preferred-register: '' }
+  - { id: 1914, class: sreg_32, preferred-register: '' }
+  - { id: 1915, class: sreg_32, preferred-register: '' }
+  - { id: 1916, class: sreg_32, preferred-register: '' }
+  - { id: 1917, class: sreg_32, preferred-register: '' }
+  - { id: 1918, class: sreg_32, preferred-register: '' }
+  - { id: 1919, class: sreg_64, preferred-register: '' }
+  - { id: 1920, class: sreg_64, preferred-register: '' }
+  - { id: 1921, class: sreg_64, preferred-register: '' }
+  - { id: 1922, class: sreg_32, preferred-register: '' }
+  - { id: 1923, class: sreg_64, preferred-register: '' }
+  - { id: 1924, class: sreg_32, preferred-register: '' }
+  - { id: 1925, class: sreg_32, preferred-register: '' }
+  - { id: 1926, class: sreg_32, preferred-register: '' }
+  - { id: 1927, class: sreg_32, preferred-register: '' }
+  - { id: 1928, class: sreg_64, preferred-register: '' }
+  - { id: 1929, class: sreg_64, preferred-register: '' }
+  - { id: 1930, class: sreg_32, preferred-register: '' }
+  - { id: 1931, class: sreg_64, preferred-register: '' }
+  - { id: 1932, class: sreg_32, preferred-register: '' }
+  - { id: 1933, class: sreg_32, preferred-register: '' }
+  - { id: 1934, class: sreg_32, preferred-register: '' }
+  - { id: 1935, class: sreg_64, preferred-register: '' }
+  - { id: 1936, class: sreg_32, preferred-register: '' }
+  - { id: 1937, class: sreg_32, preferred-register: '' }
+  - { id: 1938, class: sreg_32, preferred-register: '' }
+  - { id: 1939, class: sreg_32, preferred-register: '' }
+  - { id: 1940, class: sreg_32, preferred-register: '' }
+  - { id: 1941, class: sreg_32, preferred-register: '' }
+  - { id: 1942, class: sreg_32, preferred-register: '' }
+  - { id: 1943, class: sreg_32, preferred-register: '' }
+  - { id: 1944, class: sreg_32, preferred-register: '' }
+  - { id: 1945, class: sreg_32, preferred-register: '' }
+  - { id: 1946, class: sreg_32, preferred-register: '' }
+  - { id: 1947, class: sreg_32, preferred-register: '' }
+  - { id: 1948, class: sreg_32, preferred-register: '' }
+  - { id: 1949, class: sreg_32, preferred-register: '' }
+  - { id: 1950, class: sreg_32, preferred-register: '' }
+  - { id: 1951, class: sreg_32, preferred-register: '' }
+  - { id: 1952, class: sreg_32, preferred-register: '' }
+  - { id: 1953, class: sreg_32, preferred-register: '' }
+  - { id: 1954, class: sreg_32, preferred-register: '' }
+  - { id: 1955, class: sreg_32, preferred-register: '' }
+  - { id: 1956, class: sreg_32, preferred-register: '' }
+  - { id: 1957, class: sreg_32, preferred-register: '' }
+  - { id: 1958, class: sreg_32, preferred-register: '' }
+  - { id: 1959, class: vgpr_32, preferred-register: '' }
+  - { id: 1960, class: vreg_64, preferred-register: '' }
+  - { id: 1961, class: vreg_64, preferred-register: '' }
+  - { id: 1962, class: vreg_64, preferred-register: '' }
+  - { id: 1963, class: vreg_64, preferred-register: '' }
+  - { id: 1964, class: vreg_64, preferred-register: '' }
+  - { id: 1965, class: vreg_64, preferred-register: '' }
+  - { id: 1966, class: vreg_64, preferred-register: '' }
+  - { id: 1967, class: vreg_64, preferred-register: '' }
+  - { id: 1968, class: vgpr_32, preferred-register: '' }
+  - { id: 1969, class: sreg_64, preferred-register: '' }
+  - { id: 1970, class: sreg_64, preferred-register: '' }
+  - { id: 1971, class: sreg_32, preferred-register: '' }
+  - { id: 1972, class: sreg_32, preferred-register: '' }
+  - { id: 1973, class: sreg_32, preferred-register: '' }
+  - { id: 1974, class: sreg_32, preferred-register: '' }
+  - { id: 1975, class: sreg_32, preferred-register: '' }
+  - { id: 1976, class: sreg_32, preferred-register: '' }
+  - { id: 1977, class: sreg_32, preferred-register: '' }
+  - { id: 1978, class: sreg_32, preferred-register: '' }
+  - { id: 1979, class: sreg_32, preferred-register: '' }
+  - { id: 1980, class: sreg_64, preferred-register: '' }
+  - { id: 1981, class: sreg_64, preferred-register: '' }
+  - { id: 1982, class: sreg_64, preferred-register: '' }
+  - { id: 1983, class: sreg_64, preferred-register: '' }
+  - { id: 1984, class: sreg_64, preferred-register: '' }
+  - { id: 1985, class: sreg_64, preferred-register: '' }
+  - { id: 1986, class: sreg_32, preferred-register: '' }
+  - { id: 1987, class: sreg_64, preferred-register: '' }
+  - { id: 1988, class: sreg_32, preferred-register: '' }
+  - { id: 1989, class: sreg_32, preferred-register: '' }
+  - { id: 1990, class: sreg_32, preferred-register: '' }
+  - { id: 1991, class: sreg_32, preferred-register: '' }
+  - { id: 1992, class: sreg_32, preferred-register: '' }
+  - { id: 1993, class: sreg_32, preferred-register: '' }
+  - { id: 1994, class: sreg_32, preferred-register: '' }
+  - { id: 1995, class: sreg_32, preferred-register: '' }
+  - { id: 1996, class: sreg_64, preferred-register: '' }
+  - { id: 1997, class: sreg_64, preferred-register: '' }
+  - { id: 1998, class: sreg_64, preferred-register: '' }
+  - { id: 1999, class: sreg_64, preferred-register: '' }
+  - { id: 2000, class: sreg_64, preferred-register: '' }
+  - { id: 2001, class: sreg_32, preferred-register: '' }
+  - { id: 2002, class: sreg_64, preferred-register: '' }
+  - { id: 2003, class: sreg_32, preferred-register: '' }
+  - { id: 2004, class: sreg_32, preferred-register: '' }
+  - { id: 2005, class: sreg_32, preferred-register: '' }
+  - { id: 2006, class: sreg_32, preferred-register: '' }
+  - { id: 2007, class: sreg_32, preferred-register: '' }
+  - { id: 2008, class: sreg_32, preferred-register: '' }
+  - { id: 2009, class: sreg_32, preferred-register: '' }
+  - { id: 2010, class: sreg_64, preferred-register: '' }
+  - { id: 2011, class: sreg_64, preferred-register: '' }
+  - { id: 2012, class: sreg_64, preferred-register: '' }
+  - { id: 2013, class: sreg_64, preferred-register: '' }
+  - { id: 2014, class: sreg_32, preferred-register: '' }
+  - { id: 2015, class: sreg_64, preferred-register: '' }
+  - { id: 2016, class: sreg_32, preferred-register: '' }
+  - { id: 2017, class: sreg_32, preferred-register: '' }
+  - { id: 2018, class: sreg_32, preferred-register: '' }
+  - { id: 2019, class: sreg_32, preferred-register: '' }
+  - { id: 2020, class: sreg_32, preferred-register: '' }
+  - { id: 2021, class: sreg_32, preferred-register: '' }
+  - { id: 2022, class: sreg_64, preferred-register: '' }
+  - { id: 2023, class: sreg_64, preferred-register: '' }
+  - { id: 2024, class: sreg_64, preferred-register: '' }
+  - { id: 2025, class: sreg_64, preferred-register: '' }
+  - { id: 2026, class: sreg_32, preferred-register: '' }
+  - { id: 2027, class: sreg_64, preferred-register: '' }
+  - { id: 2028, class: sreg_32, preferred-register: '' }
+  - { id: 2029, class: sreg_32, preferred-register: '' }
+  - { id: 2030, class: sreg_32, preferred-register: '' }
+  - { id: 2031, class: sreg_32, preferred-register: '' }
+  - { id: 2032, class: sreg_32, preferred-register: '' }
+  - { id: 2033, class: sreg_64, preferred-register: '' }
+  - { id: 2034, class: sreg_64, preferred-register: '' }
+  - { id: 2035, class: sreg_64, preferred-register: '' }
+  - { id: 2036, class: sreg_32, preferred-register: '' }
+  - { id: 2037, class: sreg_64, preferred-register: '' }
+  - { id: 2038, class: sreg_32, preferred-register: '' }
+  - { id: 2039, class: sreg_32, preferred-register: '' }
+  - { id: 2040, class: sreg_32, preferred-register: '' }
+  - { id: 2041, class: sreg_32, preferred-register: '' }
+  - { id: 2042, class: sreg_64, preferred-register: '' }
+  - { id: 2043, class: sreg_64, preferred-register: '' }
+  - { id: 2044, class: sreg_32, preferred-register: '' }
+  - { id: 2045, class: sreg_64, preferred-register: '' }
+  - { id: 2046, class: sreg_32, preferred-register: '' }
+  - { id: 2047, class: sreg_32, preferred-register: '' }
+  - { id: 2048, class: sreg_32, preferred-register: '' }
+  - { id: 2049, class: sreg_64, preferred-register: '' }
+  - { id: 2050, class: sreg_32, preferred-register: '' }
+  - { id: 2051, class: sreg_32, preferred-register: '' }
+  - { id: 2052, class: sreg_32, preferred-register: '' }
+  - { id: 2053, class: sreg_32, preferred-register: '' }
+  - { id: 2054, class: sreg_32, preferred-register: '' }
+  - { id: 2055, class: sreg_32, preferred-register: '' }
+  - { id: 2056, class: sreg_32, preferred-register: '' }
+  - { id: 2057, class: sreg_32, preferred-register: '' }
+  - { id: 2058, class: sreg_32, preferred-register: '' }
+  - { id: 2059, class: sreg_32, preferred-register: '' }
+  - { id: 2060, class: sreg_32, preferred-register: '' }
+  - { id: 2061, class: sreg_32, preferred-register: '' }
+  - { id: 2062, class: sreg_32, preferred-register: '' }
+  - { id: 2063, class: sreg_32, preferred-register: '' }
+  - { id: 2064, class: sreg_32, preferred-register: '' }
+  - { id: 2065, class: sreg_32, preferred-register: '' }
+  - { id: 2066, class: sreg_32, preferred-register: '' }
+  - { id: 2067, class: sreg_32, preferred-register: '' }
+  - { id: 2068, class: sreg_32, preferred-register: '' }
+  - { id: 2069, class: sreg_32, preferred-register: '' }
+  - { id: 2070, class: sreg_32, preferred-register: '' }
+  - { id: 2071, class: sreg_32, preferred-register: '' }
+  - { id: 2072, class: sreg_32, preferred-register: '' }
+  - { id: 2073, class: sreg_64, preferred-register: '' }
+  - { id: 2074, class: sreg_32, preferred-register: '' }
+  - { id: 2075, class: sreg_32, preferred-register: '' }
+  - { id: 2076, class: sreg_32, preferred-register: '' }
+  - { id: 2077, class: sreg_64, preferred-register: '' }
+  - { id: 2078, class: sreg_32, preferred-register: '' }
+  - { id: 2079, class: sreg_32, preferred-register: '' }
+  - { id: 2080, class: sreg_32, preferred-register: '' }
+  - { id: 2081, class: sreg_64, preferred-register: '' }
+  - { id: 2082, class: sreg_64, preferred-register: '' }
+  - { id: 2083, class: sreg_64, preferred-register: '' }
+liveins:         []
+frameInfo:
+  isFrameAddressTaken: false
+  isReturnAddressTaken: false
+  hasStackMap:     false
+  hasPatchPoint:   false
+  stackSize:       0
+  offsetAdjustment: 0
+  maxAlignment:    1
+  adjustsStack:    false
+  hasCalls:        false
+  stackProtector:  ''
+  functionContext: ''
+  maxCallFrameSize: 4294967295
+  cvBytesOfCalleeSavedRegisters: 0
+  hasOpaqueSPAdjustment: false
+  hasVAStart:      false
+  hasMustTailInVarArgFunc: false
+  hasTailCall:     false
+  localFrameSize:  0
+  savePoint:       ''
+  restorePoint:    ''
+fixedStack:      []
+stack:           []
+entry_values:    []
+callSites:       []
+debugValueSubstitutions: []
+constants:       []
+machineFunctionInfo:
+  explicitKernArgSize: 0
+  maxKernArgAlign: 4
+  ldsSize:         0
+  gdsSize:         0
+  dynLDSAlign:     1
+  isEntryFunction: true
+  isChainFunction: false
+  noSignedZerosFPMath: false
+  memoryBound:     false
+  waveLimiter:     false
+  hasSpilledSGPRs: false
+  hasSpilledVGPRs: false
+  scratchRSrcReg:  '$sgpr100_sgpr101_sgpr102_sgpr103'
+  frameOffsetReg:  '$fp_reg'
+  stackPtrOffsetReg: '$sgpr32'
+  bytesInStackArgArea: 0
+  returnsVoid:     true
+  argumentInfo:
+    privateSegmentWaveByteOffset: { reg: '$sgpr8' }
+  psInputAddr:     0
+  psInputEnable:   0
+  mode:
+    ieee:            false
+    dx10-clamp:      true
+    fp32-input-denormals: false
+    fp32-output-denormals: false
+    fp64-fp16-input-denormals: true
+    fp64-fp16-output-denormals: true
+  highBitsOf32BitAddress: 0
+  occupancy:       20
+  vgprForAGPRCopy: ''
+  sgprForEXECCopy: '$sgpr104_sgpr105'
+  longBranchReservedReg: ''
+body:             |
+  ; GCN-LABEL: name: _amdgpu_cs_main
+  ; GCN: bb.0..entry:
+  ; GCN-NEXT:   successors: %bb.1(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $vgpr0, $vgpr1, $vgpr2
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr8 = COPY $sgpr1
+  ; GCN-NEXT:   renamable $sgpr0 = COPY $sgpr3
+  ; GCN-NEXT:   renamable $sgpr12_sgpr13 = COPY $exec
+  ; GCN-NEXT:   renamable $sgpr9 = COPY $sgpr2
+  ; GCN-NEXT:   renamable $sgpr2_sgpr3 = S_GETPC_B64_pseudo
+  ; GCN-NEXT:   renamable $sgpr10_sgpr11 = S_MOV_B64_IMM_PSEUDO -4294967296
+  ; GCN-NEXT:   renamable $sgpr2_sgpr3 = S_AND_B64 killed renamable $sgpr2_sgpr3, renamable $sgpr10_sgpr11, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr1 = COPY killed renamable $sgpr10
+  ; GCN-NEXT:   renamable $sgpr10_sgpr11 = S_OR_B64 killed renamable $sgpr2_sgpr3, killed renamable $sgpr0_sgpr1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr0_sgpr1_sgpr2_sgpr3 = S_LOAD_DWORDX4_IMM renamable $sgpr10_sgpr11, 16, 0 :: (invariant load (<4 x s32>) from %ir.5, addrspace 4)
+  ; GCN-NEXT:   renamable $sgpr26_sgpr27 = S_MOV_B64_IMM_PSEUDO 3
+  ; GCN-NEXT:   renamable $sgpr20_sgpr21 = S_AND_B64 killed renamable $sgpr12_sgpr13, $exec, implicit-def dead $scc
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.1 (%ir-block.8):
+  ; GCN-NEXT:   successors: %bb.2(0x30000000), %bb.3(0x50000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr20_sgpr21, $sgpr26_sgpr27:0x000000000000000F, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr12_sgpr13 = COPY killed renamable $sgpr26_sgpr27
+  ; GCN-NEXT:   renamable $sgpr26_sgpr27 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr35 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr30 = S_ADD_U32 renamable $sgpr12, -3, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr39 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr14_sgpr15 = nuw S_LSHL_B64 1, renamable $sgpr30, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr38 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr14_sgpr15 = S_AND_B64 killed renamable $sgpr14_sgpr15, renamable $sgpr20_sgpr21, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr37 = S_MOV_B32 0
+  ; GCN-NEXT:   S_CMP_LG_U64 killed renamable $sgpr14_sgpr15, 0, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr36 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr7 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   renamable $sgpr34 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr40 = S_AND_B32 killed renamable $sgpr7, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr31 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr33 = S_MOV_B32 1
+  ; GCN-NEXT:   renamable $sgpr7 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr14_sgpr15 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr16_sgpr17 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr18_sgpr19 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr22_sgpr23 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr24_sgpr25 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr28_sgpr29 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr40
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.3, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.2
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.2 (%ir-block.12):
+  ; GCN-NEXT:   successors: %bb.4(0x30000000), %bb.5(0x50000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr30, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x000000000000000F, $sgpr20_sgpr21, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr14 = S_ADD_U32 renamable $sgpr12, -2, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr33 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr16_sgpr17 = nuw S_LSHL_B64 1, renamable $sgpr14, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr31 = S_MOV_B32 1
+  ; GCN-NEXT:   renamable $sgpr26_sgpr27 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr16_sgpr17 = S_AND_B64 killed renamable $sgpr16_sgpr17, renamable $sgpr20_sgpr21, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr35 = S_MOV_B32 0
+  ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr16_sgpr17, 0, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr39 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr7 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   renamable $sgpr38 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr40 = S_AND_B32 killed renamable $sgpr7, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr37 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr36 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr34 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr7 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr16_sgpr17 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr18_sgpr19 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr22_sgpr23 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr24_sgpr25 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr28_sgpr29 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr40
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.4, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.5
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.3.Flow89:
+  ; GCN-NEXT:   successors: %bb.85(0x04000000), %bb.1(0x7c000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr30, $sgpr31, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21, $sgpr22_sgpr23:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x000000000000000F, $sgpr28_sgpr29:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr13 = S_AND_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr13
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.85, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.1
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.4 (%ir-block.33):
+  ; GCN-NEXT:   successors: %bb.6(0x30000000), %bb.7(0x50000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr30, $sgpr33, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x000000000000000F, $sgpr14_sgpr15:0x0000000000000003, $sgpr20_sgpr21, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr16 = S_ADD_U32 renamable $sgpr12, -1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr31 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr18_sgpr19 = nuw S_LSHL_B64 1, renamable $sgpr16, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr34 = S_MOV_B32 1
+  ; GCN-NEXT:   renamable $sgpr26_sgpr27 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr18_sgpr19 = S_AND_B64 killed renamable $sgpr18_sgpr19, renamable $sgpr20_sgpr21, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr35 = S_MOV_B32 0
+  ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr18_sgpr19, 0, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr39 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr7 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   renamable $sgpr38 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr17 = S_AND_B32 killed renamable $sgpr7, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr37 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr36 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr7 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr18_sgpr19 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr22_sgpr23 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr24_sgpr25 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr28_sgpr29 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr17
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.6, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.7
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.5.Flow90:
+  ; GCN-NEXT:   successors: %bb.3(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr30, $sgpr31, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21, $sgpr22_sgpr23:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x000000000000000F, $sgpr28_sgpr29:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   S_BRANCH %bb.3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.6 (%ir-block.52):
+  ; GCN-NEXT:   successors: %bb.8(0x30000000), %bb.9(0x50000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr30, $sgpr31, $sgpr33, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x000000000000000F, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr20_sgpr21, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr18_sgpr19 = nuw S_LSHL_B64 1, renamable $sgpr12, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr34 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr18_sgpr19 = S_AND_B64 killed renamable $sgpr18_sgpr19, renamable $sgpr20_sgpr21, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr36 = S_MOV_B32 1
+  ; GCN-NEXT:   renamable $sgpr26_sgpr27 = IMPLICIT_DEF
+  ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr18_sgpr19, 0, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr35 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr7 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   renamable $sgpr39 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr17 = S_AND_B32 killed renamable $sgpr7, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr38 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr37 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr7 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr18_sgpr19 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr22_sgpr23 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr24_sgpr25 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr28_sgpr29 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr17
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.8, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.9
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.7.Flow91:
+  ; GCN-NEXT:   successors: %bb.5(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr30, $sgpr31, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21, $sgpr22_sgpr23:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x000000000000000F, $sgpr28_sgpr29:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   S_BRANCH %bb.5
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.8 (%ir-block.68):
+  ; GCN-NEXT:   successors: %bb.10(0x30000000), %bb.11(0x50000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr30, $sgpr31, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x000000000000000F, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr20_sgpr21, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr18 = S_ADD_U32 renamable $sgpr12, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr22_sgpr23 = nuw S_LSHL_B64 1, renamable $sgpr18, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr36 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr22_sgpr23 = S_AND_B64 killed renamable $sgpr22_sgpr23, renamable $sgpr20_sgpr21, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr37 = S_MOV_B32 1
+  ; GCN-NEXT:   renamable $sgpr26_sgpr27 = IMPLICIT_DEF
+  ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr22_sgpr23, 0, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr35 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr7 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   renamable $sgpr39 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr17 = S_AND_B32 killed renamable $sgpr7, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr38 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr7 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr22_sgpr23 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr24_sgpr25 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr28_sgpr29 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr17
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.10, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.11
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.9.Flow92:
+  ; GCN-NEXT:   successors: %bb.7(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr30, $sgpr31, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21, $sgpr22_sgpr23:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x000000000000000F, $sgpr28_sgpr29:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   S_BRANCH %bb.7
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.10 (%ir-block.84):
+  ; GCN-NEXT:   successors: %bb.12(0x30000000), %bb.13(0x50000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr30, $sgpr31, $sgpr33, $sgpr34, $sgpr36, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x000000000000000F, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr22 = S_ADD_U32 renamable $sgpr12, 2, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr24_sgpr25 = nuw S_LSHL_B64 1, renamable $sgpr22, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr24_sgpr25 = S_AND_B64 killed renamable $sgpr24_sgpr25, renamable $sgpr20_sgpr21, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr37 = S_MOV_B32 0
+  ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr24_sgpr25, 0, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr38 = S_MOV_B32 1
+  ; GCN-NEXT:   renamable $sgpr26_sgpr27 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr7 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   renamable $sgpr35 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr17 = S_AND_B32 killed renamable $sgpr7, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr39 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr7 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr24_sgpr25 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr28_sgpr29 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr17
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.12, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.13
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.11.Flow93:
+  ; GCN-NEXT:   successors: %bb.9(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr30, $sgpr31, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21, $sgpr22_sgpr23:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x000000000000000F, $sgpr28_sgpr29:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   S_BRANCH %bb.9
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.12 (%ir-block.98):
+  ; GCN-NEXT:   successors: %bb.14(0x30000000), %bb.15(0x50000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr30, $sgpr31, $sgpr33, $sgpr34, $sgpr36, $sgpr37, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x000000000000000F, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21, $sgpr22_sgpr23:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr24 = S_ADD_U32 renamable $sgpr12, 3, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr26_sgpr27 = nuw S_LSHL_B64 1, renamable $sgpr24, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr26_sgpr27 = S_AND_B64 killed renamable $sgpr26_sgpr27, renamable $sgpr20_sgpr21, implicit-def dead $scc
+  ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr26_sgpr27, 0, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr38 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr7 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   renamable $sgpr39 = S_MOV_B32 1
+  ; GCN-NEXT:   renamable $sgpr26_sgpr27 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr17 = S_AND_B32 killed renamable $sgpr7, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr35 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr7 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr28_sgpr29 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr17
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.14, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.15
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.13.Flow94:
+  ; GCN-NEXT:   successors: %bb.11(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr30, $sgpr31, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21, $sgpr22_sgpr23:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x000000000000000F, $sgpr28_sgpr29:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   S_BRANCH %bb.11
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.14 (%ir-block.110):
+  ; GCN-NEXT:   successors: %bb.16(0x30000000), %bb.84(0x50000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr30, $sgpr31, $sgpr33, $sgpr34, $sgpr36, $sgpr37, $sgpr38, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x000000000000000F, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21, $sgpr22_sgpr23:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr28 = S_ADD_U32 renamable $sgpr12, 4, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr26_sgpr27 = nuw S_LSHL_B64 1, renamable $sgpr28, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr26_sgpr27 = S_AND_B64 killed renamable $sgpr26_sgpr27, renamable $sgpr20_sgpr21, implicit-def dead $scc
+  ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr26_sgpr27, 0, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr7 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   renamable $sgpr35 = S_MOV_B32 1
+  ; GCN-NEXT:   renamable $sgpr17 = S_AND_B32 killed renamable $sgpr7, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr26_sgpr27 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr7 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr17
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.16, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.84
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.15.Flow95:
+  ; GCN-NEXT:   successors: %bb.13(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr30, $sgpr31, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21, $sgpr22_sgpr23:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x000000000000000F, $sgpr28_sgpr29:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   S_BRANCH %bb.13
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.16 (%ir-block.120):
+  ; GCN-NEXT:   successors: %bb.84(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr30, $sgpr31, $sgpr33, $sgpr34, $sgpr36, $sgpr37, $sgpr38, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x000000000000000F, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21, $sgpr22_sgpr23:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr28_sgpr29:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr26 = S_ADD_U32 renamable $sgpr12, 8, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr7 = COPY $scc
+  ; GCN-NEXT:   renamable $sgpr7 = S_AND_B32 killed renamable $sgpr7, 1, implicit-def dead $scc
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr7
+  ; GCN-NEXT:   renamable $sgpr27 = S_ADDC_U32 renamable $sgpr13, 0, implicit-def dead $scc, implicit $scc
+  ; GCN-NEXT:   S_CMPK_EQ_I32 renamable $sgpr26, 67, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr35 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr15 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   renamable $sgpr7 = S_MOV_B32 0
+  ; GCN-NEXT:   S_BRANCH %bb.84
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.17.Flow86:
+  ; GCN-NEXT:   successors: %bb.18(0x40000000), %bb.38(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr13, $sgpr30, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr14_sgpr15:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr12 = S_XOR_B32 killed renamable $sgpr13, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr12 = S_AND_B32 killed renamable $sgpr12, 1, implicit-def dead $scc
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr12
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.38, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.18
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.18..split10splitsplitsplitsplitsplitsplit_crit_edge:
+  ; GCN-NEXT:   successors: %bb.38(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr30, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr14_sgpr15:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr7 = COPY killed renamable $sgpr14
+  ; GCN-NEXT:   S_BRANCH %bb.38
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.19.Flow84:
+  ; GCN-NEXT:   successors: %bb.20(0x40000000), %bb.37(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr13, $sgpr30, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr12 = S_XOR_B32 killed renamable $sgpr13, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr12 = S_AND_B32 killed renamable $sgpr12, 1, implicit-def dead $scc
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr12
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.37, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.20
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.20..split10splitsplitsplitsplitsplit_crit_edge:
+  ; GCN-NEXT:   successors: %bb.37(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr30, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr7 = COPY killed renamable $sgpr16
+  ; GCN-NEXT:   S_BRANCH %bb.37
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.21.Flow82:
+  ; GCN-NEXT:   successors: %bb.22(0x40000000), %bb.36(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr13, $sgpr30, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr13 = S_XOR_B32 killed renamable $sgpr13, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr13 = S_AND_B32 killed renamable $sgpr13, 1, implicit-def dead $scc
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr13
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.36, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.22
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.22..split10splitsplitsplitsplit_crit_edge:
+  ; GCN-NEXT:   successors: %bb.36(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr30, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr7 = COPY killed renamable $sgpr12
+  ; GCN-NEXT:   S_BRANCH %bb.36
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.23.Flow80:
+  ; GCN-NEXT:   successors: %bb.24(0x40000000), %bb.35(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr13, $sgpr30, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr13 = S_XOR_B32 killed renamable $sgpr13, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr13 = S_AND_B32 killed renamable $sgpr13, 1, implicit-def dead $scc
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr13
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.35, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.24
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.24..split10splitsplitsplit_crit_edge:
+  ; GCN-NEXT:   successors: %bb.35(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr30, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr7 = COPY killed renamable $sgpr18
+  ; GCN-NEXT:   S_BRANCH %bb.35
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.25.Flow78:
+  ; GCN-NEXT:   successors: %bb.26(0x40000000), %bb.34(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr13, $sgpr30, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr22_sgpr23:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr13 = S_XOR_B32 killed renamable $sgpr13, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr13 = S_AND_B32 killed renamable $sgpr13, 1, implicit-def dead $scc
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr13
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.34, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.26
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.26..split10splitsplit_crit_edge:
+  ; GCN-NEXT:   successors: %bb.34(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr30, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr22_sgpr23:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr7 = COPY killed renamable $sgpr22
+  ; GCN-NEXT:   S_BRANCH %bb.34
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.27.Flow76:
+  ; GCN-NEXT:   successors: %bb.28(0x40000000), %bb.33(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr13, $sgpr30, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr22_sgpr23:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr13 = S_XOR_B32 killed renamable $sgpr13, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr13 = S_AND_B32 killed renamable $sgpr13, 1, implicit-def dead $scc
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr13
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.33, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.28
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.28..split10split_crit_edge:
+  ; GCN-NEXT:   successors: %bb.33(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr30, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr22_sgpr23:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr7 = COPY killed renamable $sgpr24
+  ; GCN-NEXT:   S_BRANCH %bb.33
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.29..split10_crit_edge:
+  ; GCN-NEXT:   successors: %bb.32(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr30, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr22_sgpr23:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr28_sgpr29:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr7 = COPY killed renamable $sgpr28
+  ; GCN-NEXT:   S_BRANCH %bb.32
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.30.Flow88:
+  ; GCN-NEXT:   successors: %bb.31(0x40000000), %bb.39(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr13, $sgpr30, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr12 = S_XOR_B32 killed renamable $sgpr13, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr12 = S_AND_B32 killed renamable $sgpr12, 1, implicit-def dead $scc
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr12
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.39, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.31
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.31.._crit_edge9:
+  ; GCN-NEXT:   successors: %bb.39(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr30, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr7 = COPY killed renamable $sgpr30
+  ; GCN-NEXT:   S_BRANCH %bb.39
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.32.Flow75:
+  ; GCN-NEXT:   successors: %bb.27(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr30, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr22_sgpr23:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr13 = S_MOV_B32 0
+  ; GCN-NEXT:   S_BRANCH %bb.27
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.33.Flow77:
+  ; GCN-NEXT:   successors: %bb.25(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr30, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr22_sgpr23:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr13 = S_MOV_B32 0
+  ; GCN-NEXT:   S_BRANCH %bb.25
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.34.Flow79:
+  ; GCN-NEXT:   successors: %bb.23(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr30, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr13 = S_MOV_B32 0
+  ; GCN-NEXT:   S_BRANCH %bb.23
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.35.Flow81:
+  ; GCN-NEXT:   successors: %bb.21(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr30, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr13 = S_MOV_B32 0
+  ; GCN-NEXT:   S_BRANCH %bb.21
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.36.Flow83:
+  ; GCN-NEXT:   successors: %bb.19(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr30, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr13 = S_MOV_B32 0
+  ; GCN-NEXT:   S_BRANCH %bb.19
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.37.Flow85:
+  ; GCN-NEXT:   successors: %bb.17(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr30, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr14_sgpr15:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr13 = S_MOV_B32 0
+  ; GCN-NEXT:   S_BRANCH %bb.17
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.38.Flow87:
+  ; GCN-NEXT:   successors: %bb.30(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr30, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr13 = S_MOV_B32 0
+  ; GCN-NEXT:   S_BRANCH %bb.30
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.39 (%ir-block.142):
+  ; GCN-NEXT:   successors: %bb.82(0x40000000), %bb.40(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr12_sgpr13 = COPY $exec
+  ; GCN-NEXT:   renamable $sgpr14 = S_LSHL_B32 renamable $sgpr7, 5, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $vgpr1 = COPY renamable $sgpr14
+  ; GCN-NEXT:   renamable $vgpr1_vgpr2_vgpr3_vgpr4 = BUFFER_LOAD_DWORDX4_OFFEN killed renamable $vgpr1, renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (<4 x s32>), align 1, addrspace 8)
+  ; GCN-NEXT:   renamable $vgpr5 = V_MBCNT_LO_U32_B32_e64 -1, 0, implicit $exec
+  ; GCN-NEXT:   renamable $vgpr16 = V_MBCNT_HI_U32_B32_e64 -1, killed $vgpr5, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr14 = S_OR_B32 killed renamable $sgpr14, 16, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $vgpr5 = COPY killed renamable $sgpr14
+  ; GCN-NEXT:   renamable $vgpr6 = V_LSHLREV_B32_e64 5, $vgpr16, implicit $exec
+  ; GCN-NEXT:   renamable $vgpr12_vgpr13_vgpr14_vgpr15 = BUFFER_LOAD_DWORDX4_OFFEN killed renamable $vgpr5, renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (<4 x s32>), align 1, addrspace 8)
+  ; GCN-NEXT:   renamable $vgpr5 = V_OR_B32_e64 16, $vgpr6, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr14 = V_READFIRSTLANE_B32 $vgpr1, implicit $exec
+  ; GCN-NEXT:   renamable $vgpr8_vgpr9_vgpr10_vgpr11 = BUFFER_LOAD_DWORDX4_OFFEN killed renamable $vgpr6, renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (<4 x s32>), align 1, addrspace 8)
+  ; GCN-NEXT:   renamable $sgpr15 = V_READFIRSTLANE_B32 $vgpr2, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr16 = V_READFIRSTLANE_B32 $vgpr3, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr17 = V_READFIRSTLANE_B32 killed $vgpr4, implicit $exec
+  ; GCN-NEXT:   renamable $vgpr4_vgpr5_vgpr6_vgpr7 = BUFFER_LOAD_DWORDX4_OFFEN killed renamable $vgpr5, renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (<4 x s32>), align 1, addrspace 8)
+  ; GCN-NEXT:   renamable $sgpr18 = V_READFIRSTLANE_B32 $vgpr12, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr19 = V_READFIRSTLANE_B32 $vgpr13, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr20 = V_READFIRSTLANE_B32 $vgpr14, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr21 = V_READFIRSTLANE_B32 killed $vgpr15, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr22 = V_READFIRSTLANE_B32 $vgpr8, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr23 = V_READFIRSTLANE_B32 $vgpr9, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr24 = V_READFIRSTLANE_B32 $vgpr10, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr25 = V_READFIRSTLANE_B32 $vgpr11, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr26 = V_READFIRSTLANE_B32 $vgpr4, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr27 = V_READFIRSTLANE_B32 $vgpr5, implicit $exec
+  ; GCN-NEXT:   renamable $vgpr1 = COPY renamable $vgpr7
+  ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr14_sgpr15, killed renamable $sgpr22_sgpr23, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr14 = V_READFIRSTLANE_B32 $vgpr6, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr22 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr16_sgpr17, killed renamable $sgpr24_sgpr25, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr15 = V_READFIRSTLANE_B32 $vgpr1, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr16 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr18_sgpr19, killed renamable $sgpr26_sgpr27, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr17 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr20_sgpr21, killed renamable $sgpr14_sgpr15, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr14 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_AND_B32 killed renamable $sgpr22, killed renamable $sgpr16, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_AND_B32 killed renamable $sgpr17, killed renamable $sgpr15, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr14 = S_AND_B32 killed renamable $sgpr14, killed renamable $sgpr15, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $vcc = V_CMP_NE_U32_e64 $sgpr7, killed $vgpr16, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr14 = S_AND_B32 killed renamable $sgpr14, 1, implicit-def dead $scc
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr14
+  ; GCN-NEXT:   renamable $sgpr33 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   renamable $sgpr12_sgpr13 = S_XOR_B64 killed renamable $vcc, killed renamable $sgpr12_sgpr13, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $vgpr3 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr14_sgpr15 = COPY $exec, implicit-def $exec
+  ; GCN-NEXT:   renamable $sgpr16_sgpr17 = S_AND_B64 renamable $sgpr14_sgpr15, killed renamable $sgpr12_sgpr13, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr12_sgpr13 = S_XOR_B64 renamable $sgpr16_sgpr17, killed renamable $sgpr14_sgpr15, implicit-def dead $scc
+  ; GCN-NEXT:   $exec = S_MOV_B64_term killed renamable $sgpr16_sgpr17
+  ; GCN-NEXT:   S_CBRANCH_EXECZ %bb.40, implicit $exec
+  ; GCN-NEXT:   S_BRANCH %bb.82
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.40.Flow73:
+  ; GCN-NEXT:   successors: %bb.41(0x40000000), %bb.42(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $vgpr0, $vgpr3, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr12_sgpr13 = S_OR_SAVEEXEC_B64 killed renamable $sgpr12_sgpr13, implicit-def $exec, implicit-def $scc, implicit $exec
+  ; GCN-NEXT:   $exec = S_XOR_B64_term $exec, renamable $sgpr12_sgpr13, implicit-def $scc
+  ; GCN-NEXT:   S_CBRANCH_EXECZ %bb.42, implicit $exec
+  ; GCN-NEXT:   S_BRANCH %bb.41
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.41 (%ir-block.195):
+  ; GCN-NEXT:   successors: %bb.43(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr28_sgpr29 = S_MOV_B64_IMM_PSEUDO 3
+  ; GCN-NEXT:   renamable $sgpr22_sgpr23 = S_AND_B64 $exec, $exec, implicit-def dead $scc
+  ; GCN-NEXT:   S_BRANCH %bb.43
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.42.Flow74:
+  ; GCN-NEXT:   successors: %bb.83(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $vgpr0, $vgpr3, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   $exec = S_OR_B64 $exec, killed renamable $sgpr12_sgpr13, implicit-def $scc
+  ; GCN-NEXT:   S_BRANCH %bb.83
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.43 (%ir-block.198):
+  ; GCN-NEXT:   successors: %bb.44(0x30000000), %bb.45(0x50000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr22_sgpr23, $sgpr28_sgpr29:0x000000000000000F, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr14_sgpr15 = COPY killed renamable $sgpr28_sgpr29
+  ; GCN-NEXT:   renamable $sgpr28_sgpr29 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr38 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr34 = S_ADD_U32 renamable $sgpr14, -3, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr42 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr16_sgpr17 = nuw S_LSHL_B64 1, renamable $sgpr34, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr41 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr16_sgpr17 = S_AND_B64 killed renamable $sgpr16_sgpr17, renamable $sgpr22_sgpr23, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr40 = S_MOV_B32 0
+  ; GCN-NEXT:   S_CMP_LG_U64 killed renamable $sgpr16_sgpr17, 0, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr39 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr16 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   renamable $sgpr37 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr43 = S_AND_B32 killed renamable $sgpr16, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr35 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr36 = S_MOV_B32 1
+  ; GCN-NEXT:   renamable $sgpr16_sgpr17 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr18_sgpr19 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr20_sgpr21 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr24_sgpr25 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr26_sgpr27 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr30_sgpr31 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr17 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr43
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.45, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.44
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.44 (%ir-block.202):
+  ; GCN-NEXT:   successors: %bb.46(0x30000000), %bb.47(0x50000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x000000000000000F, $sgpr22_sgpr23, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr16 = S_ADD_U32 renamable $sgpr14, -2, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr36 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr18_sgpr19 = nuw S_LSHL_B64 1, renamable $sgpr16, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr35 = S_MOV_B32 1
+  ; GCN-NEXT:   renamable $sgpr28_sgpr29 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr18_sgpr19 = S_AND_B64 killed renamable $sgpr18_sgpr19, renamable $sgpr22_sgpr23, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr38 = S_MOV_B32 0
+  ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr18_sgpr19, 0, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr42 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr17 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   renamable $sgpr41 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr43 = S_AND_B32 killed renamable $sgpr17, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr40 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr39 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr37 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr18_sgpr19 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr20_sgpr21 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr24_sgpr25 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr26_sgpr27 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr30_sgpr31 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr17 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr43
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.46, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.47
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.45.Flow65:
+  ; GCN-NEXT:   successors: %bb.94(0x04000000), %bb.43(0x7c000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr17, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr28_sgpr29:0x000000000000000F, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr15 = S_AND_B32 killed renamable $sgpr17, 1, implicit-def dead $scc
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr15
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.94, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.43
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.46 (%ir-block.223):
+  ; GCN-NEXT:   successors: %bb.48(0x30000000), %bb.49(0x50000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr36, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x000000000000000F, $sgpr16_sgpr17:0x0000000000000003, $sgpr22_sgpr23, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr18 = S_ADD_U32 renamable $sgpr14, -1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr35 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr20_sgpr21 = nuw S_LSHL_B64 1, renamable $sgpr18, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr37 = S_MOV_B32 1
+  ; GCN-NEXT:   renamable $sgpr28_sgpr29 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr20_sgpr21 = S_AND_B64 killed renamable $sgpr20_sgpr21, renamable $sgpr22_sgpr23, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr38 = S_MOV_B32 0
+  ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr20_sgpr21, 0, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr42 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr17 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   renamable $sgpr41 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr19 = S_AND_B32 killed renamable $sgpr17, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr40 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr39 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr20_sgpr21 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr24_sgpr25 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr26_sgpr27 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr30_sgpr31 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr17 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr19
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.48, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.49
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.47.Flow66:
+  ; GCN-NEXT:   successors: %bb.45(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr17, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr28_sgpr29:0x000000000000000F, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   S_BRANCH %bb.45
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.48 (%ir-block.242):
+  ; GCN-NEXT:   successors: %bb.50(0x30000000), %bb.51(0x50000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x000000000000000F, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr22_sgpr23, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr20_sgpr21 = nuw S_LSHL_B64 1, renamable $sgpr14, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr37 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr20_sgpr21 = S_AND_B64 killed renamable $sgpr20_sgpr21, renamable $sgpr22_sgpr23, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr39 = S_MOV_B32 1
+  ; GCN-NEXT:   renamable $sgpr28_sgpr29 = IMPLICIT_DEF
+  ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr20_sgpr21, 0, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr38 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr17 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   renamable $sgpr42 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr19 = S_AND_B32 killed renamable $sgpr17, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr41 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr40 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr20_sgpr21 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr24_sgpr25 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr26_sgpr27 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr30_sgpr31 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr17 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr19
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.50, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.51
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.49.Flow67:
+  ; GCN-NEXT:   successors: %bb.47(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr17, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr28_sgpr29:0x000000000000000F, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   S_BRANCH %bb.47
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.50 (%ir-block.258):
+  ; GCN-NEXT:   successors: %bb.52(0x30000000), %bb.53(0x50000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x000000000000000F, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr22_sgpr23, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr20 = S_ADD_U32 renamable $sgpr14, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr24_sgpr25 = nuw S_LSHL_B64 1, renamable $sgpr20, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr39 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr24_sgpr25 = S_AND_B64 killed renamable $sgpr24_sgpr25, renamable $sgpr22_sgpr23, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr40 = S_MOV_B32 1
+  ; GCN-NEXT:   renamable $sgpr28_sgpr29 = IMPLICIT_DEF
+  ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr24_sgpr25, 0, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr38 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr17 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   renamable $sgpr42 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr19 = S_AND_B32 killed renamable $sgpr17, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr41 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr24_sgpr25 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr26_sgpr27 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr30_sgpr31 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr17 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr19
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.52, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.53
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.51.Flow68:
+  ; GCN-NEXT:   successors: %bb.49(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr17, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr28_sgpr29:0x000000000000000F, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   S_BRANCH %bb.49
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.52 (%ir-block.274):
+  ; GCN-NEXT:   successors: %bb.54(0x30000000), %bb.55(0x50000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr39, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x000000000000000F, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr24 = S_ADD_U32 renamable $sgpr14, 2, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr26_sgpr27 = nuw S_LSHL_B64 1, renamable $sgpr24, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr26_sgpr27 = S_AND_B64 killed renamable $sgpr26_sgpr27, renamable $sgpr22_sgpr23, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr40 = S_MOV_B32 0
+  ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr26_sgpr27, 0, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr41 = S_MOV_B32 1
+  ; GCN-NEXT:   renamable $sgpr28_sgpr29 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr17 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   renamable $sgpr38 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr19 = S_AND_B32 killed renamable $sgpr17, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr42 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr26_sgpr27 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr30_sgpr31 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr17 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr19
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.54, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.55
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.53.Flow69:
+  ; GCN-NEXT:   successors: %bb.51(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr17, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr28_sgpr29:0x000000000000000F, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   S_BRANCH %bb.51
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.54 (%ir-block.288):
+  ; GCN-NEXT:   successors: %bb.56(0x30000000), %bb.57(0x50000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr39, $sgpr40, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x000000000000000F, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr26 = S_ADD_U32 renamable $sgpr14, 3, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr28_sgpr29 = nuw S_LSHL_B64 1, renamable $sgpr26, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr28_sgpr29 = S_AND_B64 killed renamable $sgpr28_sgpr29, renamable $sgpr22_sgpr23, implicit-def dead $scc
+  ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr28_sgpr29, 0, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr41 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr17 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   renamable $sgpr42 = S_MOV_B32 1
+  ; GCN-NEXT:   renamable $sgpr28_sgpr29 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr19 = S_AND_B32 killed renamable $sgpr17, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr38 = S_MOV_B32 0
+  ; GCN-NEXT:   renamable $sgpr30_sgpr31 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr17 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr19
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.56, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.57
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.55.Flow70:
+  ; GCN-NEXT:   successors: %bb.53(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr17, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr28_sgpr29:0x000000000000000F, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   S_BRANCH %bb.53
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.56 (%ir-block.300):
+  ; GCN-NEXT:   successors: %bb.58(0x30000000), %bb.93(0x50000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr39, $sgpr40, $sgpr41, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x000000000000000F, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr30 = S_ADD_U32 renamable $sgpr14, 4, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr28_sgpr29 = nuw S_LSHL_B64 1, renamable $sgpr30, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr28_sgpr29 = S_AND_B64 killed renamable $sgpr28_sgpr29, renamable $sgpr22_sgpr23, implicit-def dead $scc
+  ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr28_sgpr29, 0, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr17 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   renamable $sgpr38 = S_MOV_B32 1
+  ; GCN-NEXT:   renamable $sgpr19 = S_AND_B32 killed renamable $sgpr17, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr28_sgpr29 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $sgpr17 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr19
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.58, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.93
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.57.Flow71:
+  ; GCN-NEXT:   successors: %bb.55(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr17, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr28_sgpr29:0x000000000000000F, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   S_BRANCH %bb.55
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.58 (%ir-block.310):
+  ; GCN-NEXT:   successors: %bb.93(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr39, $sgpr40, $sgpr41, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x000000000000000F, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr28 = S_ADD_U32 renamable $sgpr14, 8, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr17 = COPY $scc
+  ; GCN-NEXT:   renamable $sgpr17 = S_AND_B32 killed renamable $sgpr17, 1, implicit-def dead $scc
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr17
+  ; GCN-NEXT:   renamable $sgpr29 = S_ADDC_U32 renamable $sgpr15, 0, implicit-def dead $scc, implicit $scc
+  ; GCN-NEXT:   S_CMPK_EQ_I32 renamable $sgpr28, 67, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr17 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   renamable $sgpr38 = S_MOV_B32 0
+  ; GCN-NEXT:   S_BRANCH %bb.93
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.59.Flow62:
+  ; GCN-NEXT:   successors: %bb.60(0x40000000), %bb.80(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr16_sgpr17:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr14 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr14 = S_AND_B32 killed renamable $sgpr14, 1, implicit-def dead $scc
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr14
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.80, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.60
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.60..splitsplitsplitsplitsplitsplitsplit_crit_edge:
+  ; GCN-NEXT:   successors: %bb.80(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr16_sgpr17:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr7 = COPY killed renamable $sgpr16
+  ; GCN-NEXT:   S_BRANCH %bb.80
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.61.Flow60:
+  ; GCN-NEXT:   successors: %bb.62(0x40000000), %bb.79(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr14 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr14 = S_AND_B32 killed renamable $sgpr14, 1, implicit-def dead $scc
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr14
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.79, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.62
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.62..splitsplitsplitsplitsplitsplit_crit_edge:
+  ; GCN-NEXT:   successors: %bb.79(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr7 = COPY killed renamable $sgpr18
+  ; GCN-NEXT:   S_BRANCH %bb.79
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.63.Flow58:
+  ; GCN-NEXT:   successors: %bb.64(0x40000000), %bb.78(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_AND_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr15
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.78, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.64
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.64..splitsplitsplitsplitsplit_crit_edge:
+  ; GCN-NEXT:   successors: %bb.78(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr7 = COPY killed renamable $sgpr14
+  ; GCN-NEXT:   S_BRANCH %bb.78
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.65.Flow56:
+  ; GCN-NEXT:   successors: %bb.66(0x40000000), %bb.77(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_AND_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr15
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.77, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.66
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.66..splitsplitsplitsplit_crit_edge:
+  ; GCN-NEXT:   successors: %bb.77(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr7 = COPY killed renamable $sgpr20
+  ; GCN-NEXT:   S_BRANCH %bb.77
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.67.Flow54:
+  ; GCN-NEXT:   successors: %bb.68(0x40000000), %bb.76(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_AND_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr15
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.76, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.68
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.68..splitsplitsplit_crit_edge:
+  ; GCN-NEXT:   successors: %bb.76(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr7 = COPY killed renamable $sgpr24
+  ; GCN-NEXT:   S_BRANCH %bb.76
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.69.Flow52:
+  ; GCN-NEXT:   successors: %bb.70(0x40000000), %bb.75(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_AND_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr15
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.75, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.70
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.70..splitsplit_crit_edge:
+  ; GCN-NEXT:   successors: %bb.75(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr7 = COPY killed renamable $sgpr26
+  ; GCN-NEXT:   S_BRANCH %bb.75
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.71..split_crit_edge:
+  ; GCN-NEXT:   successors: %bb.74(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr7 = COPY killed renamable $sgpr30
+  ; GCN-NEXT:   S_BRANCH %bb.74
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.72.Flow64:
+  ; GCN-NEXT:   successors: %bb.73(0x40000000), %bb.81(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr14 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr14 = S_AND_B32 killed renamable $sgpr14, 1, implicit-def dead $scc
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr14
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.81, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.73
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.73.._crit_edge:
+  ; GCN-NEXT:   successors: %bb.81(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr7 = COPY killed renamable $sgpr34
+  ; GCN-NEXT:   S_BRANCH %bb.81
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.74.Flow:
+  ; GCN-NEXT:   successors: %bb.69(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 0
+  ; GCN-NEXT:   S_BRANCH %bb.69
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.75.Flow53:
+  ; GCN-NEXT:   successors: %bb.67(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 0
+  ; GCN-NEXT:   S_BRANCH %bb.67
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.76.Flow55:
+  ; GCN-NEXT:   successors: %bb.65(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 0
+  ; GCN-NEXT:   S_BRANCH %bb.65
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.77.Flow57:
+  ; GCN-NEXT:   successors: %bb.63(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 0
+  ; GCN-NEXT:   S_BRANCH %bb.63
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.78.Flow59:
+  ; GCN-NEXT:   successors: %bb.61(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 0
+  ; GCN-NEXT:   S_BRANCH %bb.61
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.79.Flow61:
+  ; GCN-NEXT:   successors: %bb.59(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr16_sgpr17:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 0
+  ; GCN-NEXT:   S_BRANCH %bb.59
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.80.Flow63:
+  ; GCN-NEXT:   successors: %bb.72(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 0
+  ; GCN-NEXT:   S_BRANCH %bb.72
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.81 (%ir-block.332):
+  ; GCN-NEXT:   successors: %bb.42(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr7 = S_LSHL_B32 killed renamable $sgpr7, 5, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $vgpr2 = COPY renamable $sgpr7
+  ; GCN-NEXT:   renamable $sgpr7 = S_OR_B32 killed renamable $sgpr7, 16, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr14 = V_READFIRSTLANE_B32 $vgpr8, implicit $exec
+  ; GCN-NEXT:   renamable $vgpr3 = COPY killed renamable $sgpr7
+  ; GCN-NEXT:   renamable $vgpr12_vgpr13_vgpr14_vgpr15 = BUFFER_LOAD_DWORDX4_OFFEN killed renamable $vgpr2, renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (<4 x s32>), align 1, addrspace 8)
+  ; GCN-NEXT:   renamable $sgpr15 = V_READFIRSTLANE_B32 $vgpr9, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr16 = V_READFIRSTLANE_B32 $vgpr10, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr17 = V_READFIRSTLANE_B32 killed $vgpr11, implicit $exec
+  ; GCN-NEXT:   renamable $vgpr7_vgpr8_vgpr9_vgpr10 = BUFFER_LOAD_DWORDX4_OFFEN killed renamable $vgpr3, killed renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (<4 x s32>), align 1, addrspace 8)
+  ; GCN-NEXT:   renamable $sgpr0 = V_READFIRSTLANE_B32 $vgpr4, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr1 = V_READFIRSTLANE_B32 $vgpr5, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr2 = V_READFIRSTLANE_B32 killed $vgpr6, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr3 = V_READFIRSTLANE_B32 killed $vgpr1, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr18 = V_READFIRSTLANE_B32 $vgpr12, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr19 = V_READFIRSTLANE_B32 $vgpr13, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr20 = V_READFIRSTLANE_B32 $vgpr14, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr21 = V_READFIRSTLANE_B32 killed $vgpr15, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr22 = V_READFIRSTLANE_B32 $vgpr7, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr23 = V_READFIRSTLANE_B32 $vgpr8, implicit $exec
+  ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr18_sgpr19, killed renamable $sgpr14_sgpr15, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr14 = V_READFIRSTLANE_B32 $vgpr9, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr7 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr20_sgpr21, killed renamable $sgpr16_sgpr17, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr15 = V_READFIRSTLANE_B32 killed $vgpr10, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr16 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr22_sgpr23, killed renamable $sgpr0_sgpr1, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr0 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr14_sgpr15, killed renamable $sgpr2_sgpr3, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr1 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   renamable $sgpr2 = S_AND_B32 killed renamable $sgpr7, killed renamable $sgpr16, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr0 = S_AND_B32 killed renamable $sgpr0, killed renamable $sgpr2, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr0 = S_AND_B32 killed renamable $sgpr1, killed renamable $sgpr0, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr0 = S_AND_B32 killed renamable $sgpr0, 1, implicit-def dead $scc
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr0
+  ; GCN-NEXT:   renamable $sgpr0 = S_CSELECT_B32 1, 0, implicit $scc
+  ; GCN-NEXT:   renamable $sgpr0 = S_LSHL_B32 killed renamable $sgpr0, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr0 = S_OR_B32 killed renamable $sgpr0, killed renamable $sgpr33, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $vgpr3 = COPY killed renamable $sgpr0
+  ; GCN-NEXT:   S_BRANCH %bb.42
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.82 (%ir-block.363):
+  ; GCN-NEXT:   successors: %bb.40(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr14 = S_OR_B32 renamable $sgpr33, 2, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $vgpr3 = COPY killed renamable $sgpr14
+  ; GCN-NEXT:   renamable $vgpr8_vgpr9 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $vgpr1_vgpr2 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = IMPLICIT_DEF
+  ; GCN-NEXT:   S_BRANCH %bb.40
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.83 (%ir-block.365):
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $vgpr0, $vgpr3, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr8_sgpr9 = S_LOAD_DWORDX2_IMM killed renamable $sgpr8_sgpr9, 0, 0 :: (invariant load (<2 x s32>) from %ir.numWorkgroupsPtr, align 16, addrspace 4)
+  ; GCN-NEXT:   renamable $vgpr1 = COPY killed renamable $sgpr5
+  ; GCN-NEXT:   renamable $vgpr1_vgpr2, dead renamable $sgpr0_sgpr1 = V_MAD_U64_U32_e64 $sgpr9, killed $sgpr6, $vgpr1_vgpr2, 0, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr0_sgpr1_sgpr2_sgpr3 = S_LOAD_DWORDX4_IMM killed renamable $sgpr10_sgpr11, 0, 0 :: (invariant load (<4 x s32>) from %ir.367, addrspace 4)
+  ; GCN-NEXT:   renamable $sgpr5 = S_LSHL_B32 killed renamable $sgpr8, 6, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $vgpr1 = V_MUL_LO_U32_e64 killed $vgpr1, killed $sgpr5, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr4 = S_LSHL_B32 killed renamable $sgpr4, 6, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $vgpr0 = V_ADD_U32_e64 killed $sgpr4, killed $vgpr0, 0, implicit $exec
+  ; GCN-NEXT:   renamable $vgpr0 = V_ADD_LSHL_U32_e64 killed $vgpr1, killed $vgpr0, 2, implicit $exec
+  ; GCN-NEXT:   BUFFER_STORE_DWORD_OFFEN_exact killed renamable $vgpr3, killed renamable $vgpr0, killed renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 8)
+  ; GCN-NEXT:   S_ENDPGM 0
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.84.Flow96:
+  ; GCN-NEXT:   successors: %bb.15(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr30, $sgpr31, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21, $sgpr22_sgpr23:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x000000000000000F, $sgpr28_sgpr29:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr39 = S_MOV_B32 0
+  ; GCN-NEXT:   S_BRANCH %bb.15
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.85.loop.exit.guard:
+  ; GCN-NEXT:   successors: %bb.86(0x40000000), %bb.30(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr30, $sgpr31, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr22_sgpr23:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr28_sgpr29:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr13 = S_XOR_B32 killed renamable $sgpr33, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr13 = S_XOR_B32 killed renamable $sgpr13, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_AND_B32 killed renamable $sgpr13, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr13 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr15
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.30, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.86
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.86.loop.exit.guard24:
+  ; GCN-NEXT:   successors: %bb.87(0x40000000), %bb.17(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr30, $sgpr31, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr22_sgpr23:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr28_sgpr29:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr13 = S_XOR_B32 killed renamable $sgpr31, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr13 = S_XOR_B32 killed renamable $sgpr13, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_AND_B32 killed renamable $sgpr13, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr13 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr15
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.17, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.87
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.87.loop.exit.guard25:
+  ; GCN-NEXT:   successors: %bb.88(0x40000000), %bb.19(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr30, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr22_sgpr23:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr28_sgpr29:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr13 = S_XOR_B32 killed renamable $sgpr34, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr13 = S_XOR_B32 killed renamable $sgpr13, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_AND_B32 killed renamable $sgpr13, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr13 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr15
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.19, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.88
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.88.loop.exit.guard26:
+  ; GCN-NEXT:   successors: %bb.89(0x40000000), %bb.21(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr30, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr22_sgpr23:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr28_sgpr29:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr13 = S_XOR_B32 killed renamable $sgpr36, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr13 = S_XOR_B32 killed renamable $sgpr13, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_AND_B32 killed renamable $sgpr13, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr13 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr15
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.21, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.89
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.89.loop.exit.guard27:
+  ; GCN-NEXT:   successors: %bb.90(0x40000000), %bb.23(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr30, $sgpr35, $sgpr37, $sgpr38, $sgpr39, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr22_sgpr23:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr28_sgpr29:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr13 = S_XOR_B32 killed renamable $sgpr37, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr13 = S_XOR_B32 killed renamable $sgpr13, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_AND_B32 killed renamable $sgpr13, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr13 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr15
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.23, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.90
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.90.loop.exit.guard28:
+  ; GCN-NEXT:   successors: %bb.91(0x40000000), %bb.25(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr30, $sgpr35, $sgpr38, $sgpr39, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr22_sgpr23:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr28_sgpr29:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr13 = S_XOR_B32 killed renamable $sgpr38, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr13 = S_XOR_B32 killed renamable $sgpr13, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_AND_B32 killed renamable $sgpr13, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr13 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr15
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.25, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.91
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.91.loop.exit.guard29:
+  ; GCN-NEXT:   successors: %bb.92(0x40000000), %bb.27(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr30, $sgpr35, $sgpr39, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr22_sgpr23:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr28_sgpr29:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr13 = S_XOR_B32 killed renamable $sgpr39, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr13 = S_XOR_B32 killed renamable $sgpr13, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_AND_B32 killed renamable $sgpr13, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr13 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr15
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.27, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.92
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.92.loop.exit.guard30:
+  ; GCN-NEXT:   successors: %bb.29(0x40000000), %bb.32(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr30, $sgpr35, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13:0x0000000000000003, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr22_sgpr23:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr28_sgpr29:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr13 = S_AND_B32 killed renamable $sgpr35, 1, implicit-def dead $scc
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr13
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.29, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.32
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.93.Flow72:
+  ; GCN-NEXT:   successors: %bb.57(0x80000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr17, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr28_sgpr29:0x000000000000000F, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr42 = S_MOV_B32 0
+  ; GCN-NEXT:   S_BRANCH %bb.57
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.94.loop.exit.guard37:
+  ; GCN-NEXT:   successors: %bb.95(0x40000000), %bb.72(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr36, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr17 = S_AND_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr17
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.72, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.95
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.95.loop.exit.guard38:
+  ; GCN-NEXT:   successors: %bb.96(0x40000000), %bb.59(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr35, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr35, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr17 = S_AND_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr17
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.59, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.96
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.96.loop.exit.guard39:
+  ; GCN-NEXT:   successors: %bb.97(0x40000000), %bb.61(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr37, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr17 = S_AND_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr17
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.61, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.97
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.97.loop.exit.guard40:
+  ; GCN-NEXT:   successors: %bb.98(0x40000000), %bb.63(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr39, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr17 = S_AND_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr17
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.63, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.98
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.98.loop.exit.guard41:
+  ; GCN-NEXT:   successors: %bb.99(0x40000000), %bb.65(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr38, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr40, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr17 = S_AND_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr17
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.65, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.99
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.99.loop.exit.guard42:
+  ; GCN-NEXT:   successors: %bb.100(0x40000000), %bb.67(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr38, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr41, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr17 = S_AND_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr17
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.67, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.100
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.100.loop.exit.guard43:
+  ; GCN-NEXT:   successors: %bb.101(0x40000000), %bb.69(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr38, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr42, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr17 = S_AND_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
+  ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 1
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr17
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.69, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.101
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT: bb.101.loop.exit.guard44:
+  ; GCN-NEXT:   successors: %bb.71(0x40000000), %bb.74(0x40000000)
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr38, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT: {{  $}}
+  ; GCN-NEXT:   renamable $sgpr15 = S_AND_B32 killed renamable $sgpr38, 1, implicit-def dead $scc
+  ; GCN-NEXT:   $scc = COPY killed renamable $sgpr15
+  ; GCN-NEXT:   S_CBRANCH_SCC1 %bb.71, implicit $scc
+  ; GCN-NEXT:   S_BRANCH %bb.74
+  bb.0..entry:
+    successors: %bb.1(0x80000000)
+    liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $vgpr0, $vgpr1, $vgpr2
+
+    undef %1.sub0:sreg_64 = COPY $sgpr1
+    %1.sub1:sreg_64 = COPY $sgpr2
+    undef %18.sub0:sreg_64 = COPY $sgpr3
+    %8:sreg_32 = COPY $sgpr4
+    %9:sreg_32 = COPY $sgpr5
+    %10:sreg_32 = COPY $sgpr6
+    %11:vgpr_32 = COPY $vgpr0
+    %15:sreg_64 = S_GETPC_B64_pseudo
+    undef %16.sub0:sreg_64 = S_MOV_B32 0
+    %16.sub1:sreg_64 = S_MOV_B32 -1
+    %17:sreg_64 = S_AND_B64 %15, %16, implicit-def dead $scc
+    %18.sub1:sreg_64 = COPY %16.sub0
+    %19:sreg_64 = S_OR_B64 %17, %18, implicit-def dead $scc
+    %23:sgpr_128 = S_LOAD_DWORDX4_IMM %19, 16, 0 :: (invariant load (<4 x s32>) from %ir.5, addrspace 4)
+    %927:sreg_64_xexec = COPY $exec
+    %24:sreg_64 = S_AND_B64 %927, $exec, implicit-def dead $scc
+    %1855:sreg_64 = S_MOV_B64_IMM_PSEUDO 3
+
+  bb.1 (%ir-block.8):
+    successors: %bb.2(0x30000000), %bb.3(0x50000000)
+
+    %26:sreg_64 = COPY %1855
+    %910:sreg_32 = S_ADD_U32 %26.sub0, -3, implicit-def dead $scc
+    %30:sreg_64 = nuw S_LSHL_B64 1, %910, implicit-def dead $scc
+    %31:sreg_64 = S_AND_B64 %30, %24, implicit-def dead $scc
+    S_CMP_LG_U64 %31, 0, implicit-def $scc
+    %931:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    %936:sreg_32 = S_AND_B32 %931, 1, implicit-def dead $scc
+    $scc = COPY %936
+    %1855:sreg_64 = IMPLICIT_DEF
+    %1857:sreg_32_xm0 = S_MOV_B32 0
+    %1858:sreg_32_xm0 = S_MOV_B32 0
+    %1859:sreg_32_xm0 = S_MOV_B32 0
+    %1860:sreg_32_xm0 = S_MOV_B32 0
+    %1861:sreg_32_xm0 = S_MOV_B32 0
+    %1862:sreg_32_xm0 = S_MOV_B32 0
+    %950:sreg_32_xm0 = S_MOV_B32 0
+    %1864:sreg_32 = S_MOV_B32 1
+    %1865:sreg_32 = IMPLICIT_DEF
+    %157:sreg_64 = IMPLICIT_DEF
+    %158:sreg_64 = IMPLICIT_DEF
+    %159:sreg_64 = IMPLICIT_DEF
+    %160:sreg_64 = IMPLICIT_DEF
+    %161:sreg_64 = IMPLICIT_DEF
+    %162:sreg_64 = IMPLICIT_DEF
+    %1872:sreg_32 = S_MOV_B32 1
+    S_CBRANCH_SCC1 %bb.3, implicit killed $scc
+    S_BRANCH %bb.2
+
+  bb.2 (%ir-block.12):
+    successors: %bb.4(0x30000000), %bb.5(0x50000000)
+
+    undef %157.sub0:sreg_64 = S_ADD_U32 %26.sub0, -2, implicit-def dead $scc
+    %37:sreg_64 = nuw S_LSHL_B64 1, %157.sub0, implicit-def dead $scc
+    %38:sreg_64 = S_AND_B64 %37, %24, implicit-def dead $scc
+    S_CMP_EQ_U64 %38, 0, implicit-def $scc
+    %940:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    %1864:sreg_32 = S_MOV_B32 0
+    %950:sreg_32_xm0 = S_MOV_B32 1
+    %945:sreg_32 = S_AND_B32 %940, 1, implicit-def dead $scc
+    $scc = COPY %945
+    %1855:sreg_64 = IMPLICIT_DEF
+    %1857:sreg_32_xm0 = S_MOV_B32 0
+    %1858:sreg_32_xm0 = S_MOV_B32 0
+    %1859:sreg_32_xm0 = S_MOV_B32 0
+    %1860:sreg_32_xm0 = S_MOV_B32 0
+    %1861:sreg_32_xm0 = S_MOV_B32 0
+    %1862:sreg_32_xm0 = S_MOV_B32 0
+    %1865:sreg_32 = IMPLICIT_DEF
+    %158:sreg_64 = IMPLICIT_DEF
+    %159:sreg_64 = IMPLICIT_DEF
+    %160:sreg_64 = IMPLICIT_DEF
+    %161:sreg_64 = IMPLICIT_DEF
+    %162:sreg_64 = IMPLICIT_DEF
+    %1872:sreg_32 = S_MOV_B32 1
+    S_CBRANCH_SCC1 %bb.4, implicit killed $scc
+    S_BRANCH %bb.5
+
+  bb.3.Flow89:
+    successors: %bb.85(0x04000000), %bb.1(0x7c000000)
+
+    %1142:sreg_32 = S_AND_B32 %1872, 1, implicit-def dead $scc
+    $scc = COPY %1142
+    S_CBRANCH_SCC1 %bb.85, implicit killed $scc
+    S_BRANCH %bb.1
+
+  bb.4 (%ir-block.33):
+    successors: %bb.6(0x30000000), %bb.7(0x50000000)
+
+    undef %158.sub0:sreg_64 = S_ADD_U32 %26.sub0, -1, implicit-def dead $scc
+    %43:sreg_64 = nuw S_LSHL_B64 1, %158.sub0, implicit-def dead $scc
+    %44:sreg_64 = S_AND_B64 %43, %24, implicit-def dead $scc
+    S_CMP_EQ_U64 %44, 0, implicit-def $scc
+    %949:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    %950:sreg_32_xm0 = S_MOV_B32 0
+    %1862:sreg_32_xm0 = S_MOV_B32 1
+    %954:sreg_32 = S_AND_B32 %949, 1, implicit-def dead $scc
+    $scc = COPY %954
+    %1855:sreg_64 = IMPLICIT_DEF
+    %1857:sreg_32_xm0 = S_MOV_B32 0
+    %1858:sreg_32_xm0 = S_MOV_B32 0
+    %1859:sreg_32_xm0 = S_MOV_B32 0
+    %1860:sreg_32_xm0 = S_MOV_B32 0
+    %1861:sreg_32_xm0 = S_MOV_B32 0
+    %1865:sreg_32 = IMPLICIT_DEF
+    %159:sreg_64 = IMPLICIT_DEF
+    %160:sreg_64 = IMPLICIT_DEF
+    %161:sreg_64 = IMPLICIT_DEF
+    %162:sreg_64 = IMPLICIT_DEF
+    %1872:sreg_32 = S_MOV_B32 1
+    S_CBRANCH_SCC1 %bb.6, implicit killed $scc
+    S_BRANCH %bb.7
+
+  bb.5.Flow90:
+    successors: %bb.3(0x80000000)
+
+    S_BRANCH %bb.3
+
+  bb.6 (%ir-block.52):
+    successors: %bb.8(0x30000000), %bb.9(0x50000000)
+
+    %47:sreg_64 = nuw S_LSHL_B64 1, %26.sub0, implicit-def dead $scc
+    %48:sreg_64 = S_AND_B64 %47, %24, implicit-def dead $scc
+    S_CMP_EQ_U64 %48, 0, implicit-def $scc
+    %955:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    %1862:sreg_32_xm0 = S_MOV_B32 0
+    %1861:sreg_32_xm0 = S_MOV_B32 1
+    %960:sreg_32 = S_AND_B32 %955, 1, implicit-def dead $scc
+    $scc = COPY %960
+    %1855:sreg_64 = IMPLICIT_DEF
+    %1857:sreg_32_xm0 = S_MOV_B32 0
+    %1858:sreg_32_xm0 = S_MOV_B32 0
+    %1859:sreg_32_xm0 = S_MOV_B32 0
+    %1860:sreg_32_xm0 = S_MOV_B32 0
+    %1865:sreg_32 = IMPLICIT_DEF
+    %159:sreg_64 = IMPLICIT_DEF
+    %160:sreg_64 = IMPLICIT_DEF
+    %161:sreg_64 = IMPLICIT_DEF
+    %162:sreg_64 = IMPLICIT_DEF
+    %1872:sreg_32 = S_MOV_B32 1
+    S_CBRANCH_SCC1 %bb.8, implicit killed $scc
+    S_BRANCH %bb.9
+
+  bb.7.Flow91:
+    successors: %bb.5(0x80000000)
+
+    S_BRANCH %bb.5
+
+  bb.8 (%ir-block.68):
+    successors: %bb.10(0x30000000), %bb.11(0x50000000)
+
+    undef %159.sub0:sreg_64 = S_ADD_U32 %26.sub0, 1, implicit-def dead $scc
+    %52:sreg_64 = nuw S_LSHL_B64 1, %159.sub0, implicit-def dead $scc
+    %53:sreg_64 = S_AND_B64 %52, %24, implicit-def dead $scc
+    S_CMP_EQ_U64 %53, 0, implicit-def $scc
+    %964:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    %1861:sreg_32_xm0 = S_MOV_B32 0
+    %1860:sreg_32_xm0 = S_MOV_B32 1
+    %969:sreg_32 = S_AND_B32 %964, 1, implicit-def dead $scc
+    $scc = COPY %969
+    %1855:sreg_64 = IMPLICIT_DEF
+    %1857:sreg_32_xm0 = S_MOV_B32 0
+    %1858:sreg_32_xm0 = S_MOV_B32 0
+    %1859:sreg_32_xm0 = S_MOV_B32 0
+    %1865:sreg_32 = IMPLICIT_DEF
+    %160:sreg_64 = IMPLICIT_DEF
+    %161:sreg_64 = IMPLICIT_DEF
+    %162:sreg_64 = IMPLICIT_DEF
+    %1872:sreg_32 = S_MOV_B32 1
+    S_CBRANCH_SCC1 %bb.10, implicit killed $scc
+    S_BRANCH %bb.11
+
+  bb.9.Flow92:
+    successors: %bb.7(0x80000000)
+
+    S_BRANCH %bb.7
+
+  bb.10 (%ir-block.84):
+    successors: %bb.12(0x30000000), %bb.13(0x50000000)
+
+    undef %160.sub0:sreg_64 = S_ADD_U32 %26.sub0, 2, implicit-def dead $scc
+    %58:sreg_64 = nuw S_LSHL_B64 1, %160.sub0, implicit-def dead $scc
+    %59:sreg_64 = S_AND_B64 %58, %24, implicit-def dead $scc
+    S_CMP_EQ_U64 %59, 0, implicit-def $scc
+    %973:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    %1860:sreg_32_xm0 = S_MOV_B32 0
+    %1859:sreg_32_xm0 = S_MOV_B32 1
+    %978:sreg_32 = S_AND_B32 %973, 1, implicit-def dead $scc
+    $scc = COPY %978
+    %1855:sreg_64 = IMPLICIT_DEF
+    %1857:sreg_32_xm0 = S_MOV_B32 0
+    %1858:sreg_32_xm0 = S_MOV_B32 0
+    %1865:sreg_32 = IMPLICIT_DEF
+    %161:sreg_64 = IMPLICIT_DEF
+    %162:sreg_64 = IMPLICIT_DEF
+    %1872:sreg_32 = S_MOV_B32 1
+    S_CBRANCH_SCC1 %bb.12, implicit killed $scc
+    S_BRANCH %bb.13
+
+  bb.11.Flow93:
+    successors: %bb.9(0x80000000)
+
+    S_BRANCH %bb.9
+
+  bb.12 (%ir-block.98):
+    successors: %bb.14(0x30000000), %bb.15(0x50000000)
+
+    undef %161.sub0:sreg_64 = S_ADD_U32 %26.sub0, 3, implicit-def dead $scc
+    %64:sreg_64 = nuw S_LSHL_B64 1, %161.sub0, implicit-def dead $scc
+    %65:sreg_64 = S_AND_B64 %64, %24, implicit-def dead $scc
+    S_CMP_EQ_U64 %65, 0, implicit-def $scc
+    %982:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    %1859:sreg_32_xm0 = S_MOV_B32 0
+    %1858:sreg_32_xm0 = S_MOV_B32 1
+    %987:sreg_32 = S_AND_B32 %982, 1, implicit-def dead $scc
+    $scc = COPY %987
+    %1855:sreg_64 = IMPLICIT_DEF
+    %1857:sreg_32_xm0 = S_MOV_B32 0
+    %1865:sreg_32 = IMPLICIT_DEF
+    %162:sreg_64 = IMPLICIT_DEF
+    %1872:sreg_32 = S_MOV_B32 1
+    S_CBRANCH_SCC1 %bb.14, implicit killed $scc
+    S_BRANCH %bb.15
+
+  bb.13.Flow94:
+    successors: %bb.11(0x80000000)
+
+    S_BRANCH %bb.11
+
+  bb.14 (%ir-block.110):
+    successors: %bb.16(0x30000000), %bb.84(0x50000000)
+
+    undef %162.sub0:sreg_64 = S_ADD_U32 %26.sub0, 4, implicit-def dead $scc
+    %70:sreg_64 = nuw S_LSHL_B64 1, %162.sub0, implicit-def dead $scc
+    %71:sreg_64 = S_AND_B64 %70, %24, implicit-def dead $scc
+    S_CMP_EQ_U64 %71, 0, implicit-def $scc
+    %991:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    %1857:sreg_32_xm0 = S_MOV_B32 1
+    %995:sreg_32 = S_AND_B32 %991, 1, implicit-def dead $scc
+    $scc = COPY %995
+    %1855:sreg_64 = IMPLICIT_DEF
+    %1865:sreg_32 = IMPLICIT_DEF
+    %1872:sreg_32 = S_MOV_B32 1
+    S_CBRANCH_SCC1 %bb.16, implicit killed $scc
+    S_BRANCH %bb.84
+
+  bb.15.Flow95:
+    successors: %bb.13(0x80000000)
+
+    S_BRANCH %bb.13
+
+  bb.16 (%ir-block.120):
+    successors: %bb.84(0x80000000)
+
+    undef %1855.sub0:sreg_64 = S_ADD_U32 %26.sub0, 8, implicit-def $scc
+    %996:sreg_32 = COPY killed $scc
+    %998:sreg_32 = S_AND_B32 %996, 1, implicit-def dead $scc
+    $scc = COPY %998
+    %1855.sub1:sreg_64 = S_ADDC_U32 %26.sub1, 0, implicit-def dead $scc, implicit killed $scc
+    S_CMPK_EQ_I32 %1855.sub0, 67, implicit-def $scc
+    %1872:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    %1857:sreg_32_xm0 = S_MOV_B32 0
+    %1865:sreg_32 = S_MOV_B32 0
+    S_BRANCH %bb.84
+
+  bb.17.Flow86:
+    successors: %bb.18(0x40000000), %bb.38(0x40000000)
+
+    %1301:sreg_32 = S_XOR_B32 %1938, 1, implicit-def dead $scc
+    %1304:sreg_32 = S_AND_B32 %1301, 1, implicit-def dead $scc
+    $scc = COPY %1304
+    S_CBRANCH_SCC1 %bb.38, implicit killed $scc
+    S_BRANCH %bb.18
+
+  bb.18..split10splitsplitsplitsplitsplitsplit_crit_edge:
+    successors: %bb.38(0x80000000)
+
+    %1865:sreg_32 = COPY %157.sub0
+    S_BRANCH %bb.38
+
+  bb.19.Flow84:
+    successors: %bb.20(0x40000000), %bb.37(0x40000000)
+
+    %1290:sreg_32 = S_XOR_B32 %1940, 1, implicit-def dead $scc
+    %1293:sreg_32 = S_AND_B32 %1290, 1, implicit-def dead $scc
+    $scc = COPY %1293
+    S_CBRANCH_SCC1 %bb.37, implicit killed $scc
+    S_BRANCH %bb.20
+
+  bb.20..split10splitsplitsplitsplitsplit_crit_edge:
+    successors: %bb.37(0x80000000)
+
+    %1865:sreg_32 = COPY %158.sub0
+    S_BRANCH %bb.37
+
+  bb.21.Flow82:
+    successors: %bb.22(0x40000000), %bb.36(0x40000000)
+
+    %1279:sreg_32 = S_XOR_B32 %1942, 1, implicit-def dead $scc
+    %1282:sreg_32 = S_AND_B32 %1279, 1, implicit-def dead $scc
+    $scc = COPY %1282
+    S_CBRANCH_SCC1 %bb.36, implicit killed $scc
+    S_BRANCH %bb.22
+
+  bb.22..split10splitsplitsplitsplit_crit_edge:
+    successors: %bb.36(0x80000000)
+
+    %1865:sreg_32 = COPY %26.sub0
+    S_BRANCH %bb.36
+
+  bb.23.Flow80:
+    successors: %bb.24(0x40000000), %bb.35(0x40000000)
+
+    %1268:sreg_32 = S_XOR_B32 %1944, 1, implicit-def dead $scc
+    %1271:sreg_32 = S_AND_B32 %1268, 1, implicit-def dead $scc
+    $scc = COPY %1271
+    S_CBRANCH_SCC1 %bb.35, implicit killed $scc
+    S_BRANCH %bb.24
+
+  bb.24..split10splitsplitsplit_crit_edge:
+    successors: %bb.35(0x80000000)
+
+    %1865:sreg_32 = COPY %159.sub0
+    S_BRANCH %bb.35
+
+  bb.25.Flow78:
+    successors: %bb.26(0x40000000), %bb.34(0x40000000)
+
+    %1257:sreg_32 = S_XOR_B32 %1946, 1, implicit-def dead $scc
+    %1260:sreg_32 = S_AND_B32 %1257, 1, implicit-def dead $scc
+    $scc = COPY %1260
+    S_CBRANCH_SCC1 %bb.34, implicit killed $scc
+    S_BRANCH %bb.26
+
+  bb.26..split10splitsplit_crit_edge:
+    successors: %bb.34(0x80000000)
+
+    %1865:sreg_32 = COPY %160.sub0
+    S_BRANCH %bb.34
+
+  bb.27.Flow76:
+    successors: %bb.28(0x40000000), %bb.33(0x40000000)
+
+    %1246:sreg_32 = S_XOR_B32 %1948, 1, implicit-def dead $scc
+    %1249:sreg_32 = S_AND_B32 %1246, 1, implicit-def dead $scc
+    $scc = COPY %1249
+    S_CBRANCH_SCC1 %bb.33, implicit killed $scc
+    S_BRANCH %bb.28
+
+  bb.28..split10split_crit_edge:
+    successors: %bb.33(0x80000000)
+
+    %1865:sreg_32 = COPY %161.sub0
+    S_BRANCH %bb.33
+
+  bb.29..split10_crit_edge:
+    successors: %bb.32(0x80000000)
+
+    %1865:sreg_32 = COPY %162.sub0
+    S_BRANCH %bb.32
+
+  bb.30.Flow88:
+    successors: %bb.31(0x40000000), %bb.39(0x40000000)
+
+    %1312:sreg_32 = S_XOR_B32 %1950, 1, implicit-def dead $scc
+    %1315:sreg_32 = S_AND_B32 %1312, 1, implicit-def dead $scc
+    $scc = COPY %1315
+    S_CBRANCH_SCC1 %bb.39, implicit killed $scc
+    S_BRANCH %bb.31
+
+  bb.31.._crit_edge9:
+    successors: %bb.39(0x80000000)
+
+    %1865:sreg_32 = COPY %910
+    S_BRANCH %bb.39
+
+  bb.32.Flow75:
+    successors: %bb.27(0x80000000)
+
+    %1948:sreg_32 = S_MOV_B32 0
+    S_BRANCH %bb.27
+
+  bb.33.Flow77:
+    successors: %bb.25(0x80000000)
+
+    %1946:sreg_32 = S_MOV_B32 0
+    S_BRANCH %bb.25
+
+  bb.34.Flow79:
+    successors: %bb.23(0x80000000)
+
+    %1944:sreg_32 = S_MOV_B32 0
+    S_BRANCH %bb.23
+
+  bb.35.Flow81:
+    successors: %bb.21(0x80000000)
+
+    %1942:sreg_32 = S_MOV_B32 0
+    S_BRANCH %bb.21
+
+  bb.36.Flow83:
+    successors: %bb.19(0x80000000)
+
+    %1940:sreg_32 = S_MOV_B32 0
+    S_BRANCH %bb.19
+
+  bb.37.Flow85:
+    successors: %bb.17(0x80000000)
+
+    %1938:sreg_32 = S_MOV_B32 0
+    S_BRANCH %bb.17
+
+  bb.38.Flow87:
+    successors: %bb.30(0x80000000)
+
+    %1950:sreg_32 = S_MOV_B32 0
+    S_BRANCH %bb.30
+
+  bb.39 (%ir-block.142):
+    successors: %bb.82(0x40000000), %bb.40(0x40000000)
+
+    %218:vgpr_32 = V_MBCNT_LO_U32_B32_e64 -1, 0, implicit $exec
+    %221:vgpr_32 = V_MBCNT_HI_U32_B32_e64 -1, %218, implicit $exec
+    %223:vgpr_32 = V_LSHLREV_B32_e64 5, %221, implicit $exec
+    undef %573.sub0_sub1_sub2_sub3:vreg_256 = BUFFER_LOAD_DWORDX4_OFFEN %223, %23, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (<4 x s32>), align 1, addrspace 8)
+    %226:vgpr_32 = V_OR_B32_e64 16, %223, implicit $exec
+    %573.sub4_sub5_sub6_sub7:vreg_256 = BUFFER_LOAD_DWORDX4_OFFEN %226, %23, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (<4 x s32>), align 1, addrspace 8)
+    undef %245.sub0:sreg_64 = V_READFIRSTLANE_B32 %573.sub0, implicit $exec
+    %245.sub1:sreg_64 = V_READFIRSTLANE_B32 %573.sub1, implicit $exec
+    undef %253.sub0:sreg_64 = V_READFIRSTLANE_B32 %573.sub2, implicit $exec
+    %253.sub1:sreg_64 = V_READFIRSTLANE_B32 %573.sub3, implicit $exec
+    undef %261.sub0:sreg_64 = V_READFIRSTLANE_B32 %573.sub4, implicit $exec
+    %261.sub1:sreg_64 = V_READFIRSTLANE_B32 %573.sub5, implicit $exec
+    undef %269.sub0:sreg_64 = V_READFIRSTLANE_B32 %573.sub6, implicit $exec
+    undef %1853.sub0:vreg_64 = COPY %573.sub7
+    %269.sub1:sreg_64 = V_READFIRSTLANE_B32 %1853.sub0, implicit $exec
+    %271:sreg_32 = S_LSHL_B32 %1865, 5, implicit-def dead $scc
+    %1328:vgpr_32 = COPY %271
+    %1329:vreg_128 = BUFFER_LOAD_DWORDX4_OFFEN %1328, %23, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (<4 x s32>), align 1, addrspace 8)
+    undef %574.sub0:sgpr_256 = V_READFIRSTLANE_B32 %1329.sub0, implicit $exec
+    %574.sub1:sgpr_256 = V_READFIRSTLANE_B32 %1329.sub1, implicit $exec
+    %574.sub2:sgpr_256 = V_READFIRSTLANE_B32 %1329.sub2, implicit $exec
+    %574.sub3:sgpr_256 = V_READFIRSTLANE_B32 %1329.sub3, implicit $exec
+    %273:sreg_32 = S_OR_B32 %271, 16, implicit-def dead $scc
+    %1339:vgpr_32 = COPY %273
+    %1340:vreg_128 = BUFFER_LOAD_DWORDX4_OFFEN %1339, %23, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (<4 x s32>), align 1, addrspace 8)
+    %574.sub4:sgpr_256 = V_READFIRSTLANE_B32 %1340.sub0, implicit $exec
+    %574.sub5:sgpr_256 = V_READFIRSTLANE_B32 %1340.sub1, implicit $exec
+    %574.sub6:sgpr_256 = V_READFIRSTLANE_B32 %1340.sub2, implicit $exec
+    %574.sub7:sgpr_256 = V_READFIRSTLANE_B32 %1340.sub3, implicit $exec
+    S_CMP_EQ_U64 %574.sub0_sub1, %245, implicit-def $scc
+    %1349:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    S_CMP_EQ_U64 %574.sub2_sub3, %253, implicit-def $scc
+    %1350:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    S_CMP_EQ_U64 %574.sub4_sub5, %261, implicit-def $scc
+    %1351:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    S_CMP_EQ_U64 %574.sub6_sub7, %269, implicit-def $scc
+    %1352:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    %1355:sreg_32 = S_AND_B32 %1349, %1350, implicit-def dead $scc
+    %1358:sreg_32 = S_AND_B32 %1351, %1355, implicit-def dead $scc
+    %1361:sreg_32 = S_AND_B32 %1352, %1358, implicit-def dead $scc
+    %1366:sreg_32 = S_AND_B32 %1361, 1, implicit-def dead $scc
+    $scc = COPY %1366
+    %288:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    %289:sreg_64_xexec = V_CMP_NE_U32_e64 %1865, %221, implicit $exec
+    %1369:sreg_64_xexec = COPY $exec
+    %291:sreg_64_xexec = S_XOR_B64 %289, %1369, implicit-def dead $scc
+    %1968:vgpr_32 = IMPLICIT_DEF
+    %2081:sreg_64 = COPY $exec, implicit-def $exec
+    %2082:sreg_64 = S_AND_B64 %2081, %291, implicit-def dead $scc
+    %293:sreg_64_xexec = S_XOR_B64 %2082, %2081, implicit-def dead $scc
+    $exec = S_MOV_B64_term %2082
+    S_CBRANCH_EXECZ %bb.40, implicit $exec
+    S_BRANCH %bb.82
+
+  bb.40.Flow73:
+    successors: %bb.41(0x40000000), %bb.42(0x40000000)
+
+    %2083:sreg_64 = S_OR_SAVEEXEC_B64 %293, implicit-def $exec, implicit-def $scc, implicit $exec
+    %297:sreg_64_xexec = S_AND_B64 $exec, %2083, implicit-def $scc
+    $exec = S_XOR_B64_term $exec, %297, implicit-def $scc
+    S_CBRANCH_EXECZ %bb.42, implicit $exec
+    S_BRANCH %bb.41
+
+  bb.41 (%ir-block.195):
+    successors: %bb.43(0x80000000)
+
+    %1371:sreg_64_xexec = COPY $exec
+    %298:sreg_64 = S_AND_B64 %1371, $exec, implicit-def dead $scc
+    %1969:sreg_64 = S_MOV_B64_IMM_PSEUDO 3
+    S_BRANCH %bb.43
+
+  bb.42.Flow74:
+    successors: %bb.83(0x80000000)
+
+    $exec = S_OR_B64 $exec, %297, implicit-def $scc
+    S_BRANCH %bb.83
+
+  bb.43 (%ir-block.198):
+    successors: %bb.44(0x30000000), %bb.45(0x50000000)
+
+    %299:sreg_64 = COPY %1969
+    %829:sreg_32 = S_ADD_U32 %299.sub0, -3, implicit-def dead $scc
+    %301:sreg_64 = nuw S_LSHL_B64 1, %829, implicit-def dead $scc
+    %302:sreg_64 = S_AND_B64 %301, %298, implicit-def dead $scc
+    S_CMP_LG_U64 %302, 0, implicit-def $scc
+    %1375:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    %1380:sreg_32 = S_AND_B32 %1375, 1, implicit-def dead $scc
+    $scc = COPY %1380
+    %1969:sreg_64 = IMPLICIT_DEF
+    %1971:sreg_32 = S_MOV_B32 0
+    %1972:sreg_32 = S_MOV_B32 0
+    %1973:sreg_32 = S_MOV_B32 0
+    %1974:sreg_32 = S_MOV_B32 0
+    %1975:sreg_32 = S_MOV_B32 0
+    %1976:sreg_32 = S_MOV_B32 0
+    %1394:sreg_32 = S_MOV_B32 0
+    %1978:sreg_32 = S_MOV_B32 1
+    %420:sreg_64 = IMPLICIT_DEF
+    %421:sreg_64 = IMPLICIT_DEF
+    %422:sreg_64 = IMPLICIT_DEF
+    %423:sreg_64 = IMPLICIT_DEF
+    %424:sreg_64 = IMPLICIT_DEF
+    %425:sreg_64 = IMPLICIT_DEF
+    %1986:sreg_32 = S_MOV_B32 1
+    S_CBRANCH_SCC1 %bb.45, implicit killed $scc
+    S_BRANCH %bb.44
+
+  bb.44 (%ir-block.202):
+    successors: %bb.46(0x30000000), %bb.47(0x50000000)
+
+    undef %420.sub0:sreg_64 = S_ADD_U32 %299.sub0, -2, implicit-def dead $scc
+    %306:sreg_64 = nuw S_LSHL_B64 1, %420.sub0, implicit-def dead $scc
+    %307:sreg_64 = S_AND_B64 %306, %298, implicit-def dead $scc
+    S_CMP_EQ_U64 %307, 0, implicit-def $scc
+    %1384:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    %1978:sreg_32 = S_MOV_B32 0
+    %1394:sreg_32 = S_MOV_B32 1
+    %1389:sreg_32 = S_AND_B32 %1384, 1, implicit-def dead $scc
+    $scc = COPY %1389
+    %1969:sreg_64 = IMPLICIT_DEF
+    %1971:sreg_32 = S_MOV_B32 0
+    %1972:sreg_32 = S_MOV_B32 0
+    %1973:sreg_32 = S_MOV_B32 0
+    %1974:sreg_32 = S_MOV_B32 0
+    %1975:sreg_32 = S_MOV_B32 0
+    %1976:sreg_32 = S_MOV_B32 0
+    %421:sreg_64 = IMPLICIT_DEF
+    %422:sreg_64 = IMPLICIT_DEF
+    %423:sreg_64 = IMPLICIT_DEF
+    %424:sreg_64 = IMPLICIT_DEF
+    %425:sreg_64 = IMPLICIT_DEF
+    %1986:sreg_32 = S_MOV_B32 1
+    S_CBRANCH_SCC1 %bb.46, implicit killed $scc
+    S_BRANCH %bb.47
+
+  bb.45.Flow65:
+    successors: %bb.94(0x04000000), %bb.43(0x7c000000)
+
+    %1586:sreg_32 = S_AND_B32 %1986, 1, implicit-def dead $scc
+    $scc = COPY %1586
+    S_CBRANCH_SCC1 %bb.94, implicit killed $scc
+    S_BRANCH %bb.43
+
+  bb.46 (%ir-block.223):
+    successors: %bb.48(0x30000000), %bb.49(0x50000000)
+
+    undef %421.sub0:sreg_64 = S_ADD_U32 %299.sub0, -1, implicit-def dead $scc
+    %311:sreg_64 = nuw S_LSHL_B64 1, %421.sub0, implicit-def dead $scc
+    %312:sreg_64 = S_AND_B64 %311, %298, implicit-def dead $scc
+    S_CMP_EQ_U64 %312, 0, implicit-def $scc
+    %1393:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    %1394:sreg_32 = S_MOV_B32 0
+    %1976:sreg_32 = S_MOV_B32 1
+    %1398:sreg_32 = S_AND_B32 %1393, 1, implicit-def dead $scc
+    $scc = COPY %1398
+    %1969:sreg_64 = IMPLICIT_DEF
+    %1971:sreg_32 = S_MOV_B32 0
+    %1972:sreg_32 = S_MOV_B32 0
+    %1973:sreg_32 = S_MOV_B32 0
+    %1974:sreg_32 = S_MOV_B32 0
+    %1975:sreg_32 = S_MOV_B32 0
+    %422:sreg_64 = IMPLICIT_DEF
+    %423:sreg_64 = IMPLICIT_DEF
+    %424:sreg_64 = IMPLICIT_DEF
+    %425:sreg_64 = IMPLICIT_DEF
+    %1986:sreg_32 = S_MOV_B32 1
+    S_CBRANCH_SCC1 %bb.48, implicit killed $scc
+    S_BRANCH %bb.49
+
+  bb.47.Flow66:
+    successors: %bb.45(0x80000000)
+
+    S_BRANCH %bb.45
+
+  bb.48 (%ir-block.242):
+    successors: %bb.50(0x30000000), %bb.51(0x50000000)
+
+    %315:sreg_64 = nuw S_LSHL_B64 1, %299.sub0, implicit-def dead $scc
+    %316:sreg_64 = S_AND_B64 %315, %298, implicit-def dead $scc
+    S_CMP_EQ_U64 %316, 0, implicit-def $scc
+    %1399:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    %1976:sreg_32 = S_MOV_B32 0
+    %1975:sreg_32 = S_MOV_B32 1
+    %1404:sreg_32 = S_AND_B32 %1399, 1, implicit-def dead $scc
+    $scc = COPY %1404
+    %1969:sreg_64 = IMPLICIT_DEF
+    %1971:sreg_32 = S_MOV_B32 0
+    %1972:sreg_32 = S_MOV_B32 0
+    %1973:sreg_32 = S_MOV_B32 0
+    %1974:sreg_32 = S_MOV_B32 0
+    %422:sreg_64 = IMPLICIT_DEF
+    %423:sreg_64 = IMPLICIT_DEF
+    %424:sreg_64 = IMPLICIT_DEF
+    %425:sreg_64 = IMPLICIT_DEF
+    %1986:sreg_32 = S_MOV_B32 1
+    S_CBRANCH_SCC1 %bb.50, implicit killed $scc
+    S_BRANCH %bb.51
+
+  bb.49.Flow67:
+    successors: %bb.47(0x80000000)
+
+    S_BRANCH %bb.47
+
+  bb.50 (%ir-block.258):
+    successors: %bb.52(0x30000000), %bb.53(0x50000000)
+
+    undef %422.sub0:sreg_64 = S_ADD_U32 %299.sub0, 1, implicit-def dead $scc
+    %320:sreg_64 = nuw S_LSHL_B64 1, %422.sub0, implicit-def dead $scc
+    %321:sreg_64 = S_AND_B64 %320, %298, implicit-def dead $scc
+    S_CMP_EQ_U64 %321, 0, implicit-def $scc
+    %1408:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    %1975:sreg_32 = S_MOV_B32 0
+    %1974:sreg_32 = S_MOV_B32 1
+    %1413:sreg_32 = S_AND_B32 %1408, 1, implicit-def dead $scc
+    $scc = COPY %1413
+    %1969:sreg_64 = IMPLICIT_DEF
+    %1971:sreg_32 = S_MOV_B32 0
+    %1972:sreg_32 = S_MOV_B32 0
+    %1973:sreg_32 = S_MOV_B32 0
+    %423:sreg_64 = IMPLICIT_DEF
+    %424:sreg_64 = IMPLICIT_DEF
+    %425:sreg_64 = IMPLICIT_DEF
+    %1986:sreg_32 = S_MOV_B32 1
+    S_CBRANCH_SCC1 %bb.52, implicit killed $scc
+    S_BRANCH %bb.53
+
+  bb.51.Flow68:
+    successors: %bb.49(0x80000000)
+
+    S_BRANCH %bb.49
+
+  bb.52 (%ir-block.274):
+    successors: %bb.54(0x30000000), %bb.55(0x50000000)
+
+    undef %423.sub0:sreg_64 = S_ADD_U32 %299.sub0, 2, implicit-def dead $scc
+    %325:sreg_64 = nuw S_LSHL_B64 1, %423.sub0, implicit-def dead $scc
+    %326:sreg_64 = S_AND_B64 %325, %298, implicit-def dead $scc
+    S_CMP_EQ_U64 %326, 0, implicit-def $scc
+    %1417:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    %1974:sreg_32 = S_MOV_B32 0
+    %1973:sreg_32 = S_MOV_B32 1
+    %1422:sreg_32 = S_AND_B32 %1417, 1, implicit-def dead $scc
+    $scc = COPY %1422
+    %1969:sreg_64 = IMPLICIT_DEF
+    %1971:sreg_32 = S_MOV_B32 0
+    %1972:sreg_32 = S_MOV_B32 0
+    %424:sreg_64 = IMPLICIT_DEF
+    %425:sreg_64 = IMPLICIT_DEF
+    %1986:sreg_32 = S_MOV_B32 1
+    S_CBRANCH_SCC1 %bb.54, implicit killed $scc
+    S_BRANCH %bb.55
+
+  bb.53.Flow69:
+    successors: %bb.51(0x80000000)
+
+    S_BRANCH %bb.51
+
+  bb.54 (%ir-block.288):
+    successors: %bb.56(0x30000000), %bb.57(0x50000000)
+
+    undef %424.sub0:sreg_64 = S_ADD_U32 %299.sub0, 3, implicit-def dead $scc
+    %330:sreg_64 = nuw S_LSHL_B64 1, %424.sub0, implicit-def dead $scc
+    %331:sreg_64 = S_AND_B64 %330, %298, implicit-def dead $scc
+    S_CMP_EQ_U64 %331, 0, implicit-def $scc
+    %1426:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    %1973:sreg_32 = S_MOV_B32 0
+    %1972:sreg_32 = S_MOV_B32 1
+    %1431:sreg_32 = S_AND_B32 %1426, 1, implicit-def dead $scc
+    $scc = COPY %1431
+    %1969:sreg_64 = IMPLICIT_DEF
+    %1971:sreg_32 = S_MOV_B32 0
+    %425:sreg_64 = IMPLICIT_DEF
+    %1986:sreg_32 = S_MOV_B32 1
+    S_CBRANCH_SCC1 %bb.56, implicit killed $scc
+    S_BRANCH %bb.57
+
+  bb.55.Flow70:
+    successors: %bb.53(0x80000000)
+
+    S_BRANCH %bb.53
+
+  bb.56 (%ir-block.300):
+    successors: %bb.58(0x30000000), %bb.93(0x50000000)
+
+    undef %425.sub0:sreg_64 = S_ADD_U32 %299.sub0, 4, implicit-def dead $scc
+    %335:sreg_64 = nuw S_LSHL_B64 1, %425.sub0, implicit-def dead $scc
+    %336:sreg_64 = S_AND_B64 %335, %298, implicit-def dead $scc
+    S_CMP_EQ_U64 %336, 0, implicit-def $scc
+    %1435:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    %1971:sreg_32 = S_MOV_B32 1
+    %1439:sreg_32 = S_AND_B32 %1435, 1, implicit-def dead $scc
+    $scc = COPY %1439
+    %1969:sreg_64 = IMPLICIT_DEF
+    %1986:sreg_32 = S_MOV_B32 1
+    S_CBRANCH_SCC1 %bb.58, implicit killed $scc
+    S_BRANCH %bb.93
+
+  bb.57.Flow71:
+    successors: %bb.55(0x80000000)
+
+    S_BRANCH %bb.55
+
+  bb.58 (%ir-block.310):
+    successors: %bb.93(0x80000000)
+
+    undef %1969.sub0:sreg_64 = S_ADD_U32 %299.sub0, 8, implicit-def $scc
+    %1440:sreg_32 = COPY killed $scc
+    %1442:sreg_32 = S_AND_B32 %1440, 1, implicit-def dead $scc
+    $scc = COPY %1442
+    %1969.sub1:sreg_64 = S_ADDC_U32 %299.sub1, 0, implicit-def dead $scc, implicit killed $scc
+    S_CMPK_EQ_I32 %1969.sub0, 67, implicit-def $scc
+    %1986:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    %1971:sreg_32 = S_MOV_B32 0
+    S_BRANCH %bb.93
+
+  bb.59.Flow62:
+    successors: %bb.60(0x40000000), %bb.80(0x40000000)
+
+    %1745:sreg_32 = S_XOR_B32 %2052, 1, implicit-def dead $scc
+    %1748:sreg_32 = S_AND_B32 %1745, 1, implicit-def dead $scc
+    $scc = COPY %1748
+    S_CBRANCH_SCC1 %bb.80, implicit killed $scc
+    S_BRANCH %bb.60
+
+  bb.60..splitsplitsplitsplitsplitsplitsplit_crit_edge:
+    successors: %bb.80(0x80000000)
+
+    %1865:sreg_32 = COPY %420.sub0
+    S_BRANCH %bb.80
+
+  bb.61.Flow60:
+    successors: %bb.62(0x40000000), %bb.79(0x40000000)
+
+    %1734:sreg_32 = S_XOR_B32 %2054, 1, implicit-def dead $scc
+    %1737:sreg_32 = S_AND_B32 %1734, 1, implicit-def dead $scc
+    $scc = COPY %1737
+    S_CBRANCH_SCC1 %bb.79, implicit killed $scc
+    S_BRANCH %bb.62
+
+  bb.62..splitsplitsplitsplitsplitsplit_crit_edge:
+    successors: %bb.79(0x80000000)
+
+    %1865:sreg_32 = COPY %421.sub0
+    S_BRANCH %bb.79
+
+  bb.63.Flow58:
+    successors: %bb.64(0x40000000), %bb.78(0x40000000)
+
+    %1723:sreg_32 = S_XOR_B32 %2056, 1, implicit-def dead $scc
+    %1726:sreg_32 = S_AND_B32 %1723, 1, implicit-def dead $scc
+    $scc = COPY %1726
+    S_CBRANCH_SCC1 %bb.78, implicit killed $scc
+    S_BRANCH %bb.64
+
+  bb.64..splitsplitsplitsplitsplit_crit_edge:
+    successors: %bb.78(0x80000000)
+
+    %1865:sreg_32 = COPY %299.sub0
+    S_BRANCH %bb.78
+
+  bb.65.Flow56:
+    successors: %bb.66(0x40000000), %bb.77(0x40000000)
+
+    %1712:sreg_32 = S_XOR_B32 %2058, 1, implicit-def dead $scc
+    %1715:sreg_32 = S_AND_B32 %1712, 1, implicit-def dead $scc
+    $scc = COPY %1715
+    S_CBRANCH_SCC1 %bb.77, implicit killed $scc
+    S_BRANCH %bb.66
+
+  bb.66..splitsplitsplitsplit_crit_edge:
+    successors: %bb.77(0x80000000)
+
+    %1865:sreg_32 = COPY %422.sub0
+    S_BRANCH %bb.77
+
+  bb.67.Flow54:
+    successors: %bb.68(0x40000000), %bb.76(0x40000000)
+
+    %1701:sreg_32 = S_XOR_B32 %2060, 1, implicit-def dead $scc
+    %1704:sreg_32 = S_AND_B32 %1701, 1, implicit-def dead $scc
+    $scc = COPY %1704
+    S_CBRANCH_SCC1 %bb.76, implicit killed $scc
+    S_BRANCH %bb.68
+
+  bb.68..splitsplitsplit_crit_edge:
+    successors: %bb.76(0x80000000)
+
+    %1865:sreg_32 = COPY %423.sub0
+    S_BRANCH %bb.76
+
+  bb.69.Flow52:
+    successors: %bb.70(0x40000000), %bb.75(0x40000000)
+
+    %1690:sreg_32 = S_XOR_B32 %2062, 1, implicit-def dead $scc
+    %1693:sreg_32 = S_AND_B32 %1690, 1, implicit-def dead $scc
+    $scc = COPY %1693
+    S_CBRANCH_SCC1 %bb.75, implicit killed $scc
+    S_BRANCH %bb.70
+
+  bb.70..splitsplit_crit_edge:
+    successors: %bb.75(0x80000000)
+
+    %1865:sreg_32 = COPY %424.sub0
+    S_BRANCH %bb.75
+
+  bb.71..split_crit_edge:
+    successors: %bb.74(0x80000000)
+
+    %1865:sreg_32 = COPY %425.sub0
+    S_BRANCH %bb.74
+
+  bb.72.Flow64:
+    successors: %bb.73(0x40000000), %bb.81(0x40000000)
+
+    %1756:sreg_32 = S_XOR_B32 %2064, 1, implicit-def dead $scc
+    %1759:sreg_32 = S_AND_B32 %1756, 1, implicit-def dead $scc
+    $scc = COPY %1759
+    S_CBRANCH_SCC1 %bb.81, implicit killed $scc
+    S_BRANCH %bb.73
+
+  bb.73.._crit_edge:
+    successors: %bb.81(0x80000000)
+
+    %1865:sreg_32 = COPY %829
+    S_BRANCH %bb.81
+
+  bb.74.Flow:
+    successors: %bb.69(0x80000000)
+
+    %2062:sreg_32 = S_MOV_B32 0
+    S_BRANCH %bb.69
+
+  bb.75.Flow53:
+    successors: %bb.67(0x80000000)
+
+    %2060:sreg_32 = S_MOV_B32 0
+    S_BRANCH %bb.67
+
+  bb.76.Flow55:
+    successors: %bb.65(0x80000000)
+
+    %2058:sreg_32 = S_MOV_B32 0
+    S_BRANCH %bb.65
+
+  bb.77.Flow57:
+    successors: %bb.63(0x80000000)
+
+    %2056:sreg_32 = S_MOV_B32 0
+    S_BRANCH %bb.63
+
+  bb.78.Flow59:
+    successors: %bb.61(0x80000000)
+
+    %2054:sreg_32 = S_MOV_B32 0
+    S_BRANCH %bb.61
+
+  bb.79.Flow61:
+    successors: %bb.59(0x80000000)
+
+    %2052:sreg_32 = S_MOV_B32 0
+    S_BRANCH %bb.59
+
+  bb.80.Flow63:
+    successors: %bb.72(0x80000000)
+
+    %2064:sreg_32 = S_MOV_B32 0
+    S_BRANCH %bb.72
+
+  bb.81 (%ir-block.332):
+    successors: %bb.42(0x80000000)
+
+    undef %484.sub0:sreg_64 = V_READFIRSTLANE_B32 %573.sub0, implicit $exec
+    %484.sub1:sreg_64 = V_READFIRSTLANE_B32 %573.sub1, implicit $exec
+    undef %489.sub0:sreg_64 = V_READFIRSTLANE_B32 %573.sub2, implicit $exec
+    %489.sub1:sreg_64 = V_READFIRSTLANE_B32 %573.sub3, implicit $exec
+    undef %494.sub0:sreg_64 = V_READFIRSTLANE_B32 %573.sub4, implicit $exec
+    %494.sub1:sreg_64 = V_READFIRSTLANE_B32 %573.sub5, implicit $exec
+    undef %499.sub0:sreg_64 = V_READFIRSTLANE_B32 %573.sub6, implicit $exec
+    %499.sub1:sreg_64 = V_READFIRSTLANE_B32 %1853.sub0, implicit $exec
+    %501:sreg_32 = S_LSHL_B32 %1865, 5, implicit-def dead $scc
+    %1761:vgpr_32 = COPY %501
+    %1762:vreg_128 = BUFFER_LOAD_DWORDX4_OFFEN %1761, %23, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (<4 x s32>), align 1, addrspace 8)
+    undef %607.sub0:sgpr_256 = V_READFIRSTLANE_B32 %1762.sub0, implicit $exec
+    %607.sub1:sgpr_256 = V_READFIRSTLANE_B32 %1762.sub1, implicit $exec
+    %607.sub2:sgpr_256 = V_READFIRSTLANE_B32 %1762.sub2, implicit $exec
+    %607.sub3:sgpr_256 = V_READFIRSTLANE_B32 %1762.sub3, implicit $exec
+    %503:sreg_32 = S_OR_B32 %501, 16, implicit-def dead $scc
+    %1772:vgpr_32 = COPY %503
+    %1773:vreg_128 = BUFFER_LOAD_DWORDX4_OFFEN %1772, %23, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (<4 x s32>), align 1, addrspace 8)
+    %607.sub4:sgpr_256 = V_READFIRSTLANE_B32 %1773.sub0, implicit $exec
+    %607.sub5:sgpr_256 = V_READFIRSTLANE_B32 %1773.sub1, implicit $exec
+    %607.sub6:sgpr_256 = V_READFIRSTLANE_B32 %1773.sub2, implicit $exec
+    %607.sub7:sgpr_256 = V_READFIRSTLANE_B32 %1773.sub3, implicit $exec
+    S_CMP_EQ_U64 %607.sub0_sub1, %484, implicit-def $scc
+    %1782:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    S_CMP_EQ_U64 %607.sub2_sub3, %489, implicit-def $scc
+    %1783:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    S_CMP_EQ_U64 %607.sub4_sub5, %494, implicit-def $scc
+    %1784:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    S_CMP_EQ_U64 %607.sub6_sub7, %499, implicit-def $scc
+    %1785:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    %1788:sreg_32 = S_AND_B32 %1782, %1783, implicit-def dead $scc
+    %1791:sreg_32 = S_AND_B32 %1784, %1788, implicit-def dead $scc
+    %1794:sreg_32 = S_AND_B32 %1785, %1791, implicit-def dead $scc
+    %1799:sreg_32 = S_AND_B32 %1794, 1, implicit-def dead $scc
+    $scc = COPY %1799
+    %608:sreg_32 = S_CSELECT_B32 1, 0, implicit killed $scc
+    %518:sreg_32 = S_LSHL_B32 %608, 1, implicit-def dead $scc
+    %519:sreg_32 = S_OR_B32 %518, %288, implicit-def dead $scc
+    %1968:vgpr_32 = COPY %519
+    S_BRANCH %bb.42
+
+  bb.82 (%ir-block.363):
+    successors: %bb.40(0x80000000)
+
+    %294:sreg_32 = S_OR_B32 %288, 2, implicit-def dead $scc
+    %1968:vgpr_32 = COPY %294
+    undef %573.sub0_sub1:vreg_256 = IMPLICIT_DEF
+    %1853:vreg_64 = IMPLICIT_DEF
+    S_BRANCH %bb.40
+
+  bb.83 (%ir-block.365):
+    %521:sreg_64_xexec = S_LOAD_DWORDX2_IMM %1, 0, 0 :: (invariant load (<2 x s32>) from %ir.numWorkgroupsPtr, align 16, addrspace 4)
+    %530:sreg_32 = S_LSHL_B32 %8, 6, implicit-def dead $scc
+    %531:vgpr_32 = V_ADD_U32_e64 %530, %11, 0, implicit $exec
+    %532:sreg_32 = S_LSHL_B32 %521.sub0, 6, implicit-def dead $scc
+    undef %1829.sub0:vreg_64 = COPY %9
+    %1832:vreg_64, dead %1831:sreg_64 = V_MAD_U64_U32_e64 %521.sub1, %10, %1829, 0, implicit $exec
+    %1809:vgpr_32 = V_MUL_LO_U32_e64 %1832.sub0, %532, implicit $exec
+    %537:sgpr_128 = S_LOAD_DWORDX4_IMM %19, 0, 0 :: (invariant load (<4 x s32>) from %ir.367, addrspace 4)
+    %538:vgpr_32 = V_ADD_LSHL_U32_e64 %1809, %531, 2, implicit $exec
+    BUFFER_STORE_DWORD_OFFEN_exact %1968, %538, %537, 0, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 8)
+    S_ENDPGM 0
+
+  bb.84.Flow96:
+    successors: %bb.15(0x80000000)
+
+    %1858:sreg_32_xm0 = S_MOV_B32 0
+    S_BRANCH %bb.15
+
+  bb.85.loop.exit.guard:
+    successors: %bb.86(0x40000000), %bb.30(0x40000000)
+
+    %1950:sreg_32 = S_MOV_B32 1
+    %1162:sreg_32 = S_XOR_B32 %1864, 1, implicit-def dead $scc
+    %1184:sreg_32 = S_XOR_B32 %1162, 1, implicit-def dead $scc
+    %1187:sreg_32 = S_AND_B32 %1184, 1, implicit-def dead $scc
+    $scc = COPY %1187
+    S_CBRANCH_SCC1 %bb.30, implicit killed $scc
+    S_BRANCH %bb.86
+
+  bb.86.loop.exit.guard24:
+    successors: %bb.87(0x40000000), %bb.17(0x40000000)
+
+    %1165:sreg_32 = S_XOR_B32 %950, 1, implicit-def dead $scc
+    %1938:sreg_32 = S_MOV_B32 1
+    %1191:sreg_32 = S_XOR_B32 %1165, 1, implicit-def dead $scc
+    %1195:sreg_32 = S_AND_B32 %1191, 1, implicit-def dead $scc
+    $scc = COPY %1195
+    S_CBRANCH_SCC1 %bb.17, implicit killed $scc
+    S_BRANCH %bb.87
+
+  bb.87.loop.exit.guard25:
+    successors: %bb.88(0x40000000), %bb.19(0x40000000)
+
+    %1168:sreg_32 = S_XOR_B32 %1862, 1, implicit-def dead $scc
+    %1940:sreg_32 = S_MOV_B32 1
+    %1199:sreg_32 = S_XOR_B32 %1168, 1, implicit-def dead $scc
+    %1203:sreg_32 = S_AND_B32 %1199, 1, implicit-def dead $scc
+    $scc = COPY %1203
+    S_CBRANCH_SCC1 %bb.19, implicit killed $scc
+    S_BRANCH %bb.88
+
+  bb.88.loop.exit.guard26:
+    successors: %bb.89(0x40000000), %bb.21(0x40000000)
+
+    %1171:sreg_32 = S_XOR_B32 %1861, 1, implicit-def dead $scc
+    %1942:sreg_32 = S_MOV_B32 1
+    %1207:sreg_32 = S_XOR_B32 %1171, 1, implicit-def dead $scc
+    %1211:sreg_32 = S_AND_B32 %1207, 1, implicit-def dead $scc
+    $scc = COPY %1211
+    S_CBRANCH_SCC1 %bb.21, implicit killed $scc
+    S_BRANCH %bb.89
+
+  bb.89.loop.exit.guard27:
+    successors: %bb.90(0x40000000), %bb.23(0x40000000)
+
+    %1174:sreg_32 = S_XOR_B32 %1860, 1, implicit-def dead $scc
+    %1944:sreg_32 = S_MOV_B32 1
+    %1215:sreg_32 = S_XOR_B32 %1174, 1, implicit-def dead $scc
+    %1219:sreg_32 = S_AND_B32 %1215, 1, implicit-def dead $scc
+    $scc = COPY %1219
+    S_CBRANCH_SCC1 %bb.23, implicit killed $scc
+    S_BRANCH %bb.90
+
+  bb.90.loop.exit.guard28:
+    successors: %bb.91(0x40000000), %bb.25(0x40000000)
+
+    %1177:sreg_32 = S_XOR_B32 %1859, 1, implicit-def dead $scc
+    %1946:sreg_32 = S_MOV_B32 1
+    %1223:sreg_32 = S_XOR_B32 %1177, 1, implicit-def dead $scc
+    %1227:sreg_32 = S_AND_B32 %1223, 1, implicit-def dead $scc
+    $scc = COPY %1227
+    S_CBRANCH_SCC1 %bb.25, implicit killed $scc
+    S_BRANCH %bb.91
+
+  bb.91.loop.exit.guard29:
+    successors: %bb.92(0x40000000), %bb.27(0x40000000)
+
+    %1180:sreg_32 = S_XOR_B32 %1858, 1, implicit-def dead $scc
+    %1948:sreg_32 = S_MOV_B32 1
+    %1231:sreg_32 = S_XOR_B32 %1180, 1, implicit-def dead $scc
+    %1235:sreg_32 = S_AND_B32 %1231, 1, implicit-def dead $scc
+    $scc = COPY %1235
+    S_CBRANCH_SCC1 %bb.27, implicit killed $scc
+    S_BRANCH %bb.92
+
+  bb.92.loop.exit.guard30:
+    successors: %bb.29(0x40000000), %bb.32(0x40000000)
+
+    %1238:sreg_32 = S_AND_B32 %1857, 1, implicit-def dead $scc
+    $scc = COPY %1238
+    S_CBRANCH_SCC1 %bb.29, implicit killed $scc
+    S_BRANCH %bb.32
+
+  bb.93.Flow72:
+    successors: %bb.57(0x80000000)
+
+    %1972:sreg_32 = S_MOV_B32 0
+    S_BRANCH %bb.57
+
+  bb.94.loop.exit.guard37:
+    successors: %bb.95(0x40000000), %bb.72(0x40000000)
+
+    %2064:sreg_32 = S_MOV_B32 1
+    %1606:sreg_32 = S_XOR_B32 %1978, 1, implicit-def dead $scc
+    %1628:sreg_32 = S_XOR_B32 %1606, 1, implicit-def dead $scc
+    %1631:sreg_32 = S_AND_B32 %1628, 1, implicit-def dead $scc
+    $scc = COPY %1631
+    S_CBRANCH_SCC1 %bb.72, implicit killed $scc
+    S_BRANCH %bb.95
+
+  bb.95.loop.exit.guard38:
+    successors: %bb.96(0x40000000), %bb.59(0x40000000)
+
+    %1609:sreg_32 = S_XOR_B32 %1394, 1, implicit-def dead $scc
+    %2052:sreg_32 = S_MOV_B32 1
+    %1635:sreg_32 = S_XOR_B32 %1609, 1, implicit-def dead $scc
+    %1639:sreg_32 = S_AND_B32 %1635, 1, implicit-def dead $scc
+    $scc = COPY %1639
+    S_CBRANCH_SCC1 %bb.59, implicit killed $scc
+    S_BRANCH %bb.96
+
+  bb.96.loop.exit.guard39:
+    successors: %bb.97(0x40000000), %bb.61(0x40000000)
+
+    %1612:sreg_32 = S_XOR_B32 %1976, 1, implicit-def dead $scc
+    %2054:sreg_32 = S_MOV_B32 1
+    %1643:sreg_32 = S_XOR_B32 %1612, 1, implicit-def dead $scc
+    %1647:sreg_32 = S_AND_B32 %1643, 1, implicit-def dead $scc
+    $scc = COPY %1647
+    S_CBRANCH_SCC1 %bb.61, implicit killed $scc
+    S_BRANCH %bb.97
+
+  bb.97.loop.exit.guard40:
+    successors: %bb.98(0x40000000), %bb.63(0x40000000)
+
+    %1615:sreg_32 = S_XOR_B32 %1975, 1, implicit-def dead $scc
+    %2056:sreg_32 = S_MOV_B32 1
+    %1651:sreg_32 = S_XOR_B32 %1615, 1, implicit-def dead $scc
+    %1655:sreg_32 = S_AND_B32 %1651, 1, implicit-def dead $scc
+    $scc = COPY %1655
+    S_CBRANCH_SCC1 %bb.63, implicit killed $scc
+    S_BRANCH %bb.98
+
+  bb.98.loop.exit.guard41:
+    successors: %bb.99(0x40000000), %bb.65(0x40000000)
+
+    %1618:sreg_32 = S_XOR_B32 %1974, 1, implicit-def dead $scc
+    %2058:sreg_32 = S_MOV_B32 1
+    %1659:sreg_32 = S_XOR_B32 %1618, 1, implicit-def dead $scc
+    %1663:sreg_32 = S_AND_B32 %1659, 1, implicit-def dead $scc
+    $scc = COPY %1663
+    S_CBRANCH_SCC1 %bb.65, implicit killed $scc
+    S_BRANCH %bb.99
+
+  bb.99.loop.exit.guard42:
+    successors: %bb.100(0x40000000), %bb.67(0x40000000)
+
+    %1621:sreg_32 = S_XOR_B32 %1973, 1, implicit-def dead $scc
+    %2060:sreg_32 = S_MOV_B32 1
+    %1667:sreg_32 = S_XOR_B32 %1621, 1, implicit-def dead $scc
+    %1671:sreg_32 = S_AND_B32 %1667, 1, implicit-def dead $scc
+    $scc = COPY %1671
+    S_CBRANCH_SCC1 %bb.67, implicit killed $scc
+    S_BRANCH %bb.100
+
+  bb.100.loop.exit.guard43:
+    successors: %bb.101(0x40000000), %bb.69(0x40000000)
+
+    %1624:sreg_32 = S_XOR_B32 %1972, 1, implicit-def dead $scc
+    %2062:sreg_32 = S_MOV_B32 1
+    %1675:sreg_32 = S_XOR_B32 %1624, 1, implicit-def dead $scc
+    %1679:sreg_32 = S_AND_B32 %1675, 1, implicit-def dead $scc
+    $scc = COPY %1679
+    S_CBRANCH_SCC1 %bb.69, implicit killed $scc
+    S_BRANCH %bb.101
+
+  bb.101.loop.exit.guard44:
+    successors: %bb.71(0x40000000), %bb.74(0x40000000)
+
+    %1682:sreg_32 = S_AND_B32 %1971, 1, implicit-def dead $scc
+    $scc = COPY %1682
+    S_CBRANCH_SCC1 %bb.71, implicit killed $scc
+    S_BRANCH %bb.74
+
+...

>From 3f1227c62e93d477e9b9a83bc77bccd84028b750 Mon Sep 17 00:00:00 2001
From: Petar Avramovic <Petar.Avramovic at amd.com>
Date: Wed, 17 Apr 2024 13:07:27 +0200
Subject: [PATCH 2/2] RenameIndependentSubregs: Add missing sub-range for new
 IMPLICIT_DEFs

Existing sub-ranges are correctly updated because new IMPLICIT_DEF is
added, but there is missing sub-range for IMPLICIT_DEF itself.
Because of missing sub-range in live-intervals for IMPLICIT_DEF,
register allocator does not know that IMPLICIT_DEF rewrites its
virtual sub-registers and can end up assigning overlapping physical
registers to them.
This results in deleting instructions that were defined by sub-registers
overwritten by IMPLICIT_DEF as they are now dead.
---
 llvm/lib/CodeGen/RenameIndependentSubregs.cpp |   7 +
 .../GlobalISel/llvm.amdgcn.intersect_ray.ll   | 291 ++++++++++--------
 ...rval-bug-in-rename-independent-subregs.mir | 196 ++++++------
 3 files changed, 261 insertions(+), 233 deletions(-)

diff --git a/llvm/lib/CodeGen/RenameIndependentSubregs.cpp b/llvm/lib/CodeGen/RenameIndependentSubregs.cpp
index bc3ef1c0329a98..e888f290df510d 100644
--- a/llvm/lib/CodeGen/RenameIndependentSubregs.cpp
+++ b/llvm/lib/CodeGen/RenameIndependentSubregs.cpp
@@ -334,10 +334,17 @@ void RenameIndependentSubregs::computeMainRangesFixFlags(
                                                DebugLoc(), MCDesc, Reg);
           SlotIndex DefIdx = LIS->InsertMachineInstrInMaps(*ImpDef);
           SlotIndex RegDefIdx = DefIdx.getRegSlot();
+          LaneBitmask Mask = MRI->getMaxLaneMaskForVReg(Reg);
           for (LiveInterval::SubRange &SR : LI.subranges()) {
+            Mask = Mask & ~SR.LaneMask;
             VNInfo *SRVNI = SR.getNextValue(RegDefIdx, Allocator);
             SR.addSegment(LiveRange::Segment(RegDefIdx, PredEnd, SRVNI));
           }
+
+          if (!Mask.none()) {
+            LiveInterval::SubRange *SR = LI.createSubRange(Allocator, Mask);
+            SR->createDeadDef(RegDefIdx, Allocator);
+          }
         }
       }
     }
diff --git a/llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.intersect_ray.ll b/llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.intersect_ray.ll
index 47e476de74cf41..6e96a4ddbc0b3b 100644
--- a/llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.intersect_ray.ll
+++ b/llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.intersect_ray.ll
@@ -144,40 +144,42 @@ define amdgpu_ps <4 x float> @image_bvh64_intersect_ray_a16(i64 %node_ptr, float
 define amdgpu_ps <4 x float> @image_bvh_intersect_ray_vgpr_descr(i32 %node_ptr, float %ray_extent, <3 x float> %ray_origin, <3 x float> %ray_dir, <3 x float> %ray_inv_dir, <4 x i32> %tdescr) {
 ; GFX1030-LABEL: image_bvh_intersect_ray_vgpr_descr:
 ; GFX1030:       ; %bb.0:
-; GFX1030-NEXT:    v_mov_b32_e32 v15, v0
-; GFX1030-NEXT:    v_mov_b32_e32 v16, v1
-; GFX1030-NEXT:    v_mov_b32_e32 v17, v2
-; GFX1030-NEXT:    v_mov_b32_e32 v18, v3
-; GFX1030-NEXT:    v_mov_b32_e32 v19, v4
-; GFX1030-NEXT:    v_mov_b32_e32 v20, v5
-; GFX1030-NEXT:    v_mov_b32_e32 v21, v6
-; GFX1030-NEXT:    v_mov_b32_e32 v22, v7
-; GFX1030-NEXT:    v_mov_b32_e32 v23, v8
-; GFX1030-NEXT:    v_mov_b32_e32 v24, v9
-; GFX1030-NEXT:    v_mov_b32_e32 v25, v10
+; GFX1030-NEXT:    v_mov_b32_e32 v21, v0
+; GFX1030-NEXT:    v_mov_b32_e32 v22, v1
+; GFX1030-NEXT:    v_mov_b32_e32 v23, v2
+; GFX1030-NEXT:    v_mov_b32_e32 v24, v3
+; GFX1030-NEXT:    v_mov_b32_e32 v25, v4
+; GFX1030-NEXT:    v_mov_b32_e32 v26, v5
+; GFX1030-NEXT:    v_mov_b32_e32 v27, v6
+; GFX1030-NEXT:    v_mov_b32_e32 v28, v7
+; GFX1030-NEXT:    v_mov_b32_e32 v29, v8
+; GFX1030-NEXT:    v_mov_b32_e32 v30, v9
+; GFX1030-NEXT:    v_mov_b32_e32 v31, v10
+; GFX1030-NEXT:    v_mov_b32_e32 v19, v11
+; GFX1030-NEXT:    v_mov_b32_e32 v20, v12
 ; GFX1030-NEXT:    s_mov_b32 s1, exec_lo
 ; GFX1030-NEXT:  .LBB6_1: ; =>This Inner Loop Header: Depth=1
-; GFX1030-NEXT:    v_readfirstlane_b32 s4, v11
-; GFX1030-NEXT:    v_readfirstlane_b32 s5, v12
+; GFX1030-NEXT:    v_readfirstlane_b32 s4, v19
+; GFX1030-NEXT:    v_readfirstlane_b32 s5, v20
 ; GFX1030-NEXT:    v_readfirstlane_b32 s6, v13
 ; GFX1030-NEXT:    v_readfirstlane_b32 s7, v14
-; GFX1030-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[11:12]
+; GFX1030-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[19:20]
 ; GFX1030-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[13:14]
 ; GFX1030-NEXT:    s_and_b32 s0, vcc_lo, s0
 ; GFX1030-NEXT:    s_and_saveexec_b32 s0, s0
-; GFX1030-NEXT:    image_bvh_intersect_ray v[0:3], v[15:25], s[4:7]
-; GFX1030-NEXT:    ; implicit-def: $vgpr11
-; GFX1030-NEXT:    ; implicit-def: $vgpr15
-; GFX1030-NEXT:    ; implicit-def: $vgpr16
-; GFX1030-NEXT:    ; implicit-def: $vgpr17
-; GFX1030-NEXT:    ; implicit-def: $vgpr18
+; GFX1030-NEXT:    image_bvh_intersect_ray v[0:3], v[21:31], s[4:7]
 ; GFX1030-NEXT:    ; implicit-def: $vgpr19
-; GFX1030-NEXT:    ; implicit-def: $vgpr20
 ; GFX1030-NEXT:    ; implicit-def: $vgpr21
 ; GFX1030-NEXT:    ; implicit-def: $vgpr22
 ; GFX1030-NEXT:    ; implicit-def: $vgpr23
 ; GFX1030-NEXT:    ; implicit-def: $vgpr24
 ; GFX1030-NEXT:    ; implicit-def: $vgpr25
+; GFX1030-NEXT:    ; implicit-def: $vgpr26
+; GFX1030-NEXT:    ; implicit-def: $vgpr27
+; GFX1030-NEXT:    ; implicit-def: $vgpr28
+; GFX1030-NEXT:    ; implicit-def: $vgpr29
+; GFX1030-NEXT:    ; implicit-def: $vgpr30
+; GFX1030-NEXT:    ; implicit-def: $vgpr31
 ; GFX1030-NEXT:    ; implicit-def: $vgpr11_vgpr12_vgpr13_vgpr14
 ; GFX1030-NEXT:    s_xor_b32 exec_lo, exec_lo, s0
 ; GFX1030-NEXT:    s_cbranch_execnz .LBB6_1
@@ -188,18 +190,20 @@ define amdgpu_ps <4 x float> @image_bvh_intersect_ray_vgpr_descr(i32 %node_ptr,
 ;
 ; GFX1013-LABEL: image_bvh_intersect_ray_vgpr_descr:
 ; GFX1013:       ; %bb.0:
+; GFX1013-NEXT:    v_mov_b32_e32 v19, v11
+; GFX1013-NEXT:    v_mov_b32_e32 v20, v12
 ; GFX1013-NEXT:    s_mov_b32 s1, exec_lo
 ; GFX1013-NEXT:  .LBB6_1: ; =>This Inner Loop Header: Depth=1
-; GFX1013-NEXT:    v_readfirstlane_b32 s4, v11
-; GFX1013-NEXT:    v_readfirstlane_b32 s5, v12
+; GFX1013-NEXT:    v_readfirstlane_b32 s4, v19
+; GFX1013-NEXT:    v_readfirstlane_b32 s5, v20
 ; GFX1013-NEXT:    v_readfirstlane_b32 s6, v13
 ; GFX1013-NEXT:    v_readfirstlane_b32 s7, v14
-; GFX1013-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[11:12]
+; GFX1013-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[19:20]
 ; GFX1013-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[13:14]
 ; GFX1013-NEXT:    s_and_b32 s0, vcc_lo, s0
 ; GFX1013-NEXT:    s_and_saveexec_b32 s0, s0
 ; GFX1013-NEXT:    image_bvh_intersect_ray v[15:18], v[0:10], s[4:7]
-; GFX1013-NEXT:    ; implicit-def: $vgpr11
+; GFX1013-NEXT:    ; implicit-def: $vgpr19
 ; GFX1013-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10
 ; GFX1013-NEXT:    ; implicit-def: $vgpr11_vgpr12_vgpr13_vgpr14
 ; GFX1013-NEXT:    s_waitcnt_depctr 0xffe3
@@ -216,25 +220,27 @@ define amdgpu_ps <4 x float> @image_bvh_intersect_ray_vgpr_descr(i32 %node_ptr,
 ;
 ; GFX11-LABEL: image_bvh_intersect_ray_vgpr_descr:
 ; GFX11:       ; %bb.0:
-; GFX11-NEXT:    v_dual_mov_b32 v18, v0 :: v_dual_mov_b32 v19, v1
+; GFX11-NEXT:    v_dual_mov_b32 v20, v0 :: v_dual_mov_b32 v21, v1
 ; GFX11-NEXT:    v_dual_mov_b32 v15, v2 :: v_dual_mov_b32 v16, v3
-; GFX11-NEXT:    v_mov_b32_e32 v17, v4
+; GFX11-NEXT:    v_dual_mov_b32 v17, v4 :: v_dual_mov_b32 v18, v11
+; GFX11-NEXT:    v_mov_b32_e32 v19, v12
 ; GFX11-NEXT:    s_mov_b32 s1, exec_lo
 ; GFX11-NEXT:  .LBB6_1: ; =>This Inner Loop Header: Depth=1
-; GFX11-NEXT:    v_readfirstlane_b32 s4, v11
-; GFX11-NEXT:    v_readfirstlane_b32 s5, v12
+; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
+; GFX11-NEXT:    v_readfirstlane_b32 s4, v18
+; GFX11-NEXT:    v_readfirstlane_b32 s5, v19
 ; GFX11-NEXT:    v_readfirstlane_b32 s6, v13
 ; GFX11-NEXT:    v_readfirstlane_b32 s7, v14
 ; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)
-; GFX11-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[11:12]
+; GFX11-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[18:19]
 ; GFX11-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[13:14]
 ; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(SALU_CYCLE_1)
 ; GFX11-NEXT:    s_and_b32 s0, vcc_lo, s0
 ; GFX11-NEXT:    s_and_saveexec_b32 s0, s0
-; GFX11-NEXT:    image_bvh_intersect_ray v[0:3], [v18, v19, v[15:17], v[5:7], v[8:10]], s[4:7]
-; GFX11-NEXT:    ; implicit-def: $vgpr11
+; GFX11-NEXT:    image_bvh_intersect_ray v[0:3], [v20, v21, v[15:17], v[5:7], v[8:10]], s[4:7]
 ; GFX11-NEXT:    ; implicit-def: $vgpr18
-; GFX11-NEXT:    ; implicit-def: $vgpr19
+; GFX11-NEXT:    ; implicit-def: $vgpr20
+; GFX11-NEXT:    ; implicit-def: $vgpr21
 ; GFX11-NEXT:    ; implicit-def: $vgpr15_vgpr16_vgpr17
 ; GFX11-NEXT:    ; implicit-def: $vgpr5_vgpr6_vgpr7
 ; GFX11-NEXT:    ; implicit-def: $vgpr8_vgpr9_vgpr10
@@ -253,39 +259,41 @@ define amdgpu_ps <4 x float> @image_bvh_intersect_ray_vgpr_descr(i32 %node_ptr,
 define amdgpu_ps <4 x float> @image_bvh_intersect_ray_a16_vgpr_descr(i32 %node_ptr, float %ray_extent, <3 x float> %ray_origin, <3 x half> %ray_dir, <3 x half> %ray_inv_dir, <4 x i32> %tdescr) {
 ; GFX1030-LABEL: image_bvh_intersect_ray_a16_vgpr_descr:
 ; GFX1030:       ; %bb.0:
-; GFX1030-NEXT:    v_mov_b32_e32 v13, v0
-; GFX1030-NEXT:    v_mov_b32_e32 v14, v1
+; GFX1030-NEXT:    v_mov_b32_e32 v18, v0
+; GFX1030-NEXT:    v_mov_b32_e32 v19, v1
 ; GFX1030-NEXT:    v_lshrrev_b32_e32 v0, 16, v5
 ; GFX1030-NEXT:    v_and_b32_e32 v1, 0xffff, v7
-; GFX1030-NEXT:    v_mov_b32_e32 v15, v2
+; GFX1030-NEXT:    v_mov_b32_e32 v20, v2
 ; GFX1030-NEXT:    v_and_b32_e32 v2, 0xffff, v8
-; GFX1030-NEXT:    v_mov_b32_e32 v16, v3
+; GFX1030-NEXT:    v_mov_b32_e32 v21, v3
 ; GFX1030-NEXT:    v_lshlrev_b32_e32 v0, 16, v0
 ; GFX1030-NEXT:    v_lshlrev_b32_e32 v1, 16, v1
-; GFX1030-NEXT:    v_mov_b32_e32 v17, v4
-; GFX1030-NEXT:    v_alignbit_b32 v20, v2, v7, 16
+; GFX1030-NEXT:    v_mov_b32_e32 v22, v4
+; GFX1030-NEXT:    v_mov_b32_e32 v16, v9
+; GFX1030-NEXT:    v_mov_b32_e32 v17, v10
+; GFX1030-NEXT:    v_and_or_b32 v23, 0xffff, v5, v0
+; GFX1030-NEXT:    v_and_or_b32 v24, 0xffff, v6, v1
+; GFX1030-NEXT:    v_alignbit_b32 v25, v2, v7, 16
 ; GFX1030-NEXT:    s_mov_b32 s1, exec_lo
-; GFX1030-NEXT:    v_and_or_b32 v18, 0xffff, v5, v0
-; GFX1030-NEXT:    v_and_or_b32 v19, 0xffff, v6, v1
 ; GFX1030-NEXT:  .LBB7_1: ; =>This Inner Loop Header: Depth=1
-; GFX1030-NEXT:    v_readfirstlane_b32 s4, v9
-; GFX1030-NEXT:    v_readfirstlane_b32 s5, v10
+; GFX1030-NEXT:    v_readfirstlane_b32 s4, v16
+; GFX1030-NEXT:    v_readfirstlane_b32 s5, v17
 ; GFX1030-NEXT:    v_readfirstlane_b32 s6, v11
 ; GFX1030-NEXT:    v_readfirstlane_b32 s7, v12
-; GFX1030-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[9:10]
+; GFX1030-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[16:17]
 ; GFX1030-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[11:12]
 ; GFX1030-NEXT:    s_and_b32 s0, vcc_lo, s0
 ; GFX1030-NEXT:    s_and_saveexec_b32 s0, s0
-; GFX1030-NEXT:    image_bvh_intersect_ray v[0:3], v[13:20], s[4:7] a16
-; GFX1030-NEXT:    ; implicit-def: $vgpr9
-; GFX1030-NEXT:    ; implicit-def: $vgpr13
-; GFX1030-NEXT:    ; implicit-def: $vgpr14
-; GFX1030-NEXT:    ; implicit-def: $vgpr15
+; GFX1030-NEXT:    image_bvh_intersect_ray v[0:3], v[18:25], s[4:7] a16
 ; GFX1030-NEXT:    ; implicit-def: $vgpr16
-; GFX1030-NEXT:    ; implicit-def: $vgpr17
 ; GFX1030-NEXT:    ; implicit-def: $vgpr18
 ; GFX1030-NEXT:    ; implicit-def: $vgpr19
 ; GFX1030-NEXT:    ; implicit-def: $vgpr20
+; GFX1030-NEXT:    ; implicit-def: $vgpr21
+; GFX1030-NEXT:    ; implicit-def: $vgpr22
+; GFX1030-NEXT:    ; implicit-def: $vgpr23
+; GFX1030-NEXT:    ; implicit-def: $vgpr24
+; GFX1030-NEXT:    ; implicit-def: $vgpr25
 ; GFX1030-NEXT:    ; implicit-def: $vgpr9_vgpr10_vgpr11_vgpr12
 ; GFX1030-NEXT:    s_xor_b32 exec_lo, exec_lo, s0
 ; GFX1030-NEXT:    s_cbranch_execnz .LBB7_1
@@ -296,26 +304,28 @@ define amdgpu_ps <4 x float> @image_bvh_intersect_ray_a16_vgpr_descr(i32 %node_p
 ;
 ; GFX1013-LABEL: image_bvh_intersect_ray_a16_vgpr_descr:
 ; GFX1013:       ; %bb.0:
-; GFX1013-NEXT:    v_lshrrev_b32_e32 v13, 16, v5
-; GFX1013-NEXT:    v_and_b32_e32 v14, 0xffff, v7
+; GFX1013-NEXT:    v_mov_b32_e32 v17, v9
+; GFX1013-NEXT:    v_mov_b32_e32 v18, v10
+; GFX1013-NEXT:    v_lshrrev_b32_e32 v9, 16, v5
+; GFX1013-NEXT:    v_and_b32_e32 v10, 0xffff, v7
 ; GFX1013-NEXT:    v_and_b32_e32 v8, 0xffff, v8
 ; GFX1013-NEXT:    s_mov_b32 s1, exec_lo
-; GFX1013-NEXT:    v_lshlrev_b32_e32 v13, 16, v13
-; GFX1013-NEXT:    v_lshlrev_b32_e32 v14, 16, v14
+; GFX1013-NEXT:    v_lshlrev_b32_e32 v9, 16, v9
+; GFX1013-NEXT:    v_lshlrev_b32_e32 v10, 16, v10
 ; GFX1013-NEXT:    v_alignbit_b32 v7, v8, v7, 16
-; GFX1013-NEXT:    v_and_or_b32 v5, 0xffff, v5, v13
-; GFX1013-NEXT:    v_and_or_b32 v6, 0xffff, v6, v14
+; GFX1013-NEXT:    v_and_or_b32 v5, 0xffff, v5, v9
+; GFX1013-NEXT:    v_and_or_b32 v6, 0xffff, v6, v10
 ; GFX1013-NEXT:  .LBB7_1: ; =>This Inner Loop Header: Depth=1
-; GFX1013-NEXT:    v_readfirstlane_b32 s4, v9
-; GFX1013-NEXT:    v_readfirstlane_b32 s5, v10
+; GFX1013-NEXT:    v_readfirstlane_b32 s4, v17
+; GFX1013-NEXT:    v_readfirstlane_b32 s5, v18
 ; GFX1013-NEXT:    v_readfirstlane_b32 s6, v11
 ; GFX1013-NEXT:    v_readfirstlane_b32 s7, v12
-; GFX1013-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[9:10]
+; GFX1013-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[17:18]
 ; GFX1013-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[11:12]
 ; GFX1013-NEXT:    s_and_b32 s0, vcc_lo, s0
 ; GFX1013-NEXT:    s_and_saveexec_b32 s0, s0
 ; GFX1013-NEXT:    image_bvh_intersect_ray v[13:16], v[0:7], s[4:7] a16
-; GFX1013-NEXT:    ; implicit-def: $vgpr9
+; GFX1013-NEXT:    ; implicit-def: $vgpr17
 ; GFX1013-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7
 ; GFX1013-NEXT:    ; implicit-def: $vgpr9_vgpr10_vgpr11_vgpr12
 ; GFX1013-NEXT:    s_waitcnt_depctr 0xffe3
@@ -333,27 +343,28 @@ define amdgpu_ps <4 x float> @image_bvh_intersect_ray_a16_vgpr_descr(i32 %node_p
 ; GFX11-LABEL: image_bvh_intersect_ray_a16_vgpr_descr:
 ; GFX11:       ; %bb.0:
 ; GFX11-NEXT:    v_dual_mov_b32 v16, v0 :: v_dual_mov_b32 v17, v1
-; GFX11-NEXT:    v_dual_mov_b32 v15, v4 :: v_dual_and_b32 v0, 0xffff, v7
+; GFX11-NEXT:    v_dual_mov_b32 v19, v10 :: v_dual_and_b32 v0, 0xffff, v7
 ; GFX11-NEXT:    v_and_b32_e32 v1, 0xffff, v8
 ; GFX11-NEXT:    v_dual_mov_b32 v13, v2 :: v_dual_mov_b32 v14, v3
-; GFX11-NEXT:    s_mov_b32 s1, exec_lo
-; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_3)
+; GFX11-NEXT:    v_dual_mov_b32 v15, v4 :: v_dual_mov_b32 v18, v9
+; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_4)
 ; GFX11-NEXT:    v_lshl_or_b32 v4, v5, 16, v0
 ; GFX11-NEXT:    v_perm_b32 v5, v5, v7, 0x7060302
 ; GFX11-NEXT:    v_lshl_or_b32 v6, v6, 16, v1
+; GFX11-NEXT:    s_mov_b32 s1, exec_lo
 ; GFX11-NEXT:  .LBB7_1: ; =>This Inner Loop Header: Depth=1
-; GFX11-NEXT:    v_readfirstlane_b32 s4, v9
-; GFX11-NEXT:    v_readfirstlane_b32 s5, v10
+; GFX11-NEXT:    v_readfirstlane_b32 s4, v18
+; GFX11-NEXT:    v_readfirstlane_b32 s5, v19
 ; GFX11-NEXT:    v_readfirstlane_b32 s6, v11
 ; GFX11-NEXT:    v_readfirstlane_b32 s7, v12
 ; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)
-; GFX11-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[9:10]
+; GFX11-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[18:19]
 ; GFX11-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[11:12]
 ; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(SALU_CYCLE_1)
 ; GFX11-NEXT:    s_and_b32 s0, vcc_lo, s0
 ; GFX11-NEXT:    s_and_saveexec_b32 s0, s0
 ; GFX11-NEXT:    image_bvh_intersect_ray v[0:3], [v16, v17, v[13:15], v[4:6]], s[4:7] a16
-; GFX11-NEXT:    ; implicit-def: $vgpr9
+; GFX11-NEXT:    ; implicit-def: $vgpr18
 ; GFX11-NEXT:    ; implicit-def: $vgpr16
 ; GFX11-NEXT:    ; implicit-def: $vgpr17
 ; GFX11-NEXT:    ; implicit-def: $vgpr13_vgpr14_vgpr15
@@ -373,42 +384,44 @@ define amdgpu_ps <4 x float> @image_bvh_intersect_ray_a16_vgpr_descr(i32 %node_p
 define amdgpu_ps <4 x float> @image_bvh64_intersect_ray_vgpr_descr(i64 %node_ptr, float %ray_extent, <3 x float> %ray_origin, <3 x float> %ray_dir, <3 x float> %ray_inv_dir, <4 x i32> %tdescr) {
 ; GFX1030-LABEL: image_bvh64_intersect_ray_vgpr_descr:
 ; GFX1030:       ; %bb.0:
-; GFX1030-NEXT:    v_mov_b32_e32 v16, v0
-; GFX1030-NEXT:    v_mov_b32_e32 v17, v1
-; GFX1030-NEXT:    v_mov_b32_e32 v18, v2
-; GFX1030-NEXT:    v_mov_b32_e32 v19, v3
-; GFX1030-NEXT:    v_mov_b32_e32 v20, v4
-; GFX1030-NEXT:    v_mov_b32_e32 v21, v5
-; GFX1030-NEXT:    v_mov_b32_e32 v22, v6
-; GFX1030-NEXT:    v_mov_b32_e32 v23, v7
-; GFX1030-NEXT:    v_mov_b32_e32 v24, v8
-; GFX1030-NEXT:    v_mov_b32_e32 v25, v9
-; GFX1030-NEXT:    v_mov_b32_e32 v26, v10
-; GFX1030-NEXT:    v_mov_b32_e32 v27, v11
+; GFX1030-NEXT:    v_mov_b32_e32 v22, v0
+; GFX1030-NEXT:    v_mov_b32_e32 v23, v1
+; GFX1030-NEXT:    v_mov_b32_e32 v24, v2
+; GFX1030-NEXT:    v_mov_b32_e32 v25, v3
+; GFX1030-NEXT:    v_mov_b32_e32 v26, v4
+; GFX1030-NEXT:    v_mov_b32_e32 v27, v5
+; GFX1030-NEXT:    v_mov_b32_e32 v28, v6
+; GFX1030-NEXT:    v_mov_b32_e32 v29, v7
+; GFX1030-NEXT:    v_mov_b32_e32 v30, v8
+; GFX1030-NEXT:    v_mov_b32_e32 v31, v9
+; GFX1030-NEXT:    v_mov_b32_e32 v32, v10
+; GFX1030-NEXT:    v_mov_b32_e32 v33, v11
+; GFX1030-NEXT:    v_mov_b32_e32 v20, v12
+; GFX1030-NEXT:    v_mov_b32_e32 v21, v13
 ; GFX1030-NEXT:    s_mov_b32 s1, exec_lo
 ; GFX1030-NEXT:  .LBB8_1: ; =>This Inner Loop Header: Depth=1
-; GFX1030-NEXT:    v_readfirstlane_b32 s4, v12
-; GFX1030-NEXT:    v_readfirstlane_b32 s5, v13
+; GFX1030-NEXT:    v_readfirstlane_b32 s4, v20
+; GFX1030-NEXT:    v_readfirstlane_b32 s5, v21
 ; GFX1030-NEXT:    v_readfirstlane_b32 s6, v14
 ; GFX1030-NEXT:    v_readfirstlane_b32 s7, v15
-; GFX1030-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[12:13]
+; GFX1030-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[20:21]
 ; GFX1030-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[14:15]
 ; GFX1030-NEXT:    s_and_b32 s0, vcc_lo, s0
 ; GFX1030-NEXT:    s_and_saveexec_b32 s0, s0
-; GFX1030-NEXT:    image_bvh64_intersect_ray v[0:3], v[16:27], s[4:7]
-; GFX1030-NEXT:    ; implicit-def: $vgpr12
-; GFX1030-NEXT:    ; implicit-def: $vgpr16
-; GFX1030-NEXT:    ; implicit-def: $vgpr17
-; GFX1030-NEXT:    ; implicit-def: $vgpr18
-; GFX1030-NEXT:    ; implicit-def: $vgpr19
+; GFX1030-NEXT:    image_bvh64_intersect_ray v[0:3], v[22:33], s[4:7]
 ; GFX1030-NEXT:    ; implicit-def: $vgpr20
-; GFX1030-NEXT:    ; implicit-def: $vgpr21
 ; GFX1030-NEXT:    ; implicit-def: $vgpr22
 ; GFX1030-NEXT:    ; implicit-def: $vgpr23
 ; GFX1030-NEXT:    ; implicit-def: $vgpr24
 ; GFX1030-NEXT:    ; implicit-def: $vgpr25
 ; GFX1030-NEXT:    ; implicit-def: $vgpr26
 ; GFX1030-NEXT:    ; implicit-def: $vgpr27
+; GFX1030-NEXT:    ; implicit-def: $vgpr28
+; GFX1030-NEXT:    ; implicit-def: $vgpr29
+; GFX1030-NEXT:    ; implicit-def: $vgpr30
+; GFX1030-NEXT:    ; implicit-def: $vgpr31
+; GFX1030-NEXT:    ; implicit-def: $vgpr32
+; GFX1030-NEXT:    ; implicit-def: $vgpr33
 ; GFX1030-NEXT:    ; implicit-def: $vgpr12_vgpr13_vgpr14_vgpr15
 ; GFX1030-NEXT:    s_xor_b32 exec_lo, exec_lo, s0
 ; GFX1030-NEXT:    s_cbranch_execnz .LBB8_1
@@ -419,18 +432,20 @@ define amdgpu_ps <4 x float> @image_bvh64_intersect_ray_vgpr_descr(i64 %node_ptr
 ;
 ; GFX1013-LABEL: image_bvh64_intersect_ray_vgpr_descr:
 ; GFX1013:       ; %bb.0:
+; GFX1013-NEXT:    v_mov_b32_e32 v20, v12
+; GFX1013-NEXT:    v_mov_b32_e32 v21, v13
 ; GFX1013-NEXT:    s_mov_b32 s1, exec_lo
 ; GFX1013-NEXT:  .LBB8_1: ; =>This Inner Loop Header: Depth=1
-; GFX1013-NEXT:    v_readfirstlane_b32 s4, v12
-; GFX1013-NEXT:    v_readfirstlane_b32 s5, v13
+; GFX1013-NEXT:    v_readfirstlane_b32 s4, v20
+; GFX1013-NEXT:    v_readfirstlane_b32 s5, v21
 ; GFX1013-NEXT:    v_readfirstlane_b32 s6, v14
 ; GFX1013-NEXT:    v_readfirstlane_b32 s7, v15
-; GFX1013-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[12:13]
+; GFX1013-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[20:21]
 ; GFX1013-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[14:15]
 ; GFX1013-NEXT:    s_and_b32 s0, vcc_lo, s0
 ; GFX1013-NEXT:    s_and_saveexec_b32 s0, s0
 ; GFX1013-NEXT:    image_bvh64_intersect_ray v[16:19], v[0:11], s[4:7]
-; GFX1013-NEXT:    ; implicit-def: $vgpr12
+; GFX1013-NEXT:    ; implicit-def: $vgpr20
 ; GFX1013-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11
 ; GFX1013-NEXT:    ; implicit-def: $vgpr12_vgpr13_vgpr14_vgpr15
 ; GFX1013-NEXT:    s_waitcnt_depctr 0xffe3
@@ -450,20 +465,22 @@ define amdgpu_ps <4 x float> @image_bvh64_intersect_ray_vgpr_descr(i64 %node_ptr
 ; GFX11-NEXT:    v_dual_mov_b32 v19, v0 :: v_dual_mov_b32 v20, v1
 ; GFX11-NEXT:    v_dual_mov_b32 v21, v2 :: v_dual_mov_b32 v16, v3
 ; GFX11-NEXT:    v_dual_mov_b32 v17, v4 :: v_dual_mov_b32 v18, v5
+; GFX11-NEXT:    v_dual_mov_b32 v4, v12 :: v_dual_mov_b32 v5, v13
 ; GFX11-NEXT:    s_mov_b32 s1, exec_lo
 ; GFX11-NEXT:  .LBB8_1: ; =>This Inner Loop Header: Depth=1
-; GFX11-NEXT:    v_readfirstlane_b32 s4, v12
-; GFX11-NEXT:    v_readfirstlane_b32 s5, v13
+; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)
+; GFX11-NEXT:    v_readfirstlane_b32 s4, v4
+; GFX11-NEXT:    v_readfirstlane_b32 s5, v5
 ; GFX11-NEXT:    v_readfirstlane_b32 s6, v14
 ; GFX11-NEXT:    v_readfirstlane_b32 s7, v15
 ; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)
-; GFX11-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[12:13]
+; GFX11-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[4:5]
 ; GFX11-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[14:15]
 ; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(SALU_CYCLE_1)
 ; GFX11-NEXT:    s_and_b32 s0, vcc_lo, s0
 ; GFX11-NEXT:    s_and_saveexec_b32 s0, s0
 ; GFX11-NEXT:    image_bvh64_intersect_ray v[0:3], [v[19:20], v21, v[16:18], v[6:8], v[9:11]], s[4:7]
-; GFX11-NEXT:    ; implicit-def: $vgpr12
+; GFX11-NEXT:    ; implicit-def: $vgpr4
 ; GFX11-NEXT:    ; implicit-def: $vgpr19_vgpr20
 ; GFX11-NEXT:    ; implicit-def: $vgpr21
 ; GFX11-NEXT:    ; implicit-def: $vgpr16_vgpr17_vgpr18
@@ -484,41 +501,43 @@ define amdgpu_ps <4 x float> @image_bvh64_intersect_ray_vgpr_descr(i64 %node_ptr
 define amdgpu_ps <4 x float> @image_bvh64_intersect_ray_a16_vgpr_descr(i64 %node_ptr, float %ray_extent, <3 x float> %ray_origin, <3 x half> %ray_dir, <3 x half> %ray_inv_dir, <4 x i32> %tdescr) {
 ; GFX1030-LABEL: image_bvh64_intersect_ray_a16_vgpr_descr:
 ; GFX1030:       ; %bb.0:
-; GFX1030-NEXT:    v_mov_b32_e32 v14, v0
-; GFX1030-NEXT:    v_mov_b32_e32 v15, v1
+; GFX1030-NEXT:    v_mov_b32_e32 v19, v0
+; GFX1030-NEXT:    v_mov_b32_e32 v20, v1
 ; GFX1030-NEXT:    v_lshrrev_b32_e32 v0, 16, v6
 ; GFX1030-NEXT:    v_and_b32_e32 v1, 0xffff, v8
-; GFX1030-NEXT:    v_mov_b32_e32 v16, v2
+; GFX1030-NEXT:    v_mov_b32_e32 v21, v2
 ; GFX1030-NEXT:    v_and_b32_e32 v2, 0xffff, v9
-; GFX1030-NEXT:    v_mov_b32_e32 v17, v3
+; GFX1030-NEXT:    v_mov_b32_e32 v22, v3
 ; GFX1030-NEXT:    v_lshlrev_b32_e32 v0, 16, v0
 ; GFX1030-NEXT:    v_lshlrev_b32_e32 v1, 16, v1
-; GFX1030-NEXT:    v_mov_b32_e32 v18, v4
-; GFX1030-NEXT:    v_mov_b32_e32 v19, v5
-; GFX1030-NEXT:    v_alignbit_b32 v22, v2, v8, 16
-; GFX1030-NEXT:    v_and_or_b32 v20, 0xffff, v6, v0
-; GFX1030-NEXT:    v_and_or_b32 v21, 0xffff, v7, v1
+; GFX1030-NEXT:    v_mov_b32_e32 v23, v4
+; GFX1030-NEXT:    v_mov_b32_e32 v24, v5
+; GFX1030-NEXT:    v_mov_b32_e32 v17, v10
+; GFX1030-NEXT:    v_mov_b32_e32 v18, v11
+; GFX1030-NEXT:    v_and_or_b32 v25, 0xffff, v6, v0
+; GFX1030-NEXT:    v_and_or_b32 v26, 0xffff, v7, v1
+; GFX1030-NEXT:    v_alignbit_b32 v27, v2, v8, 16
 ; GFX1030-NEXT:    s_mov_b32 s1, exec_lo
 ; GFX1030-NEXT:  .LBB9_1: ; =>This Inner Loop Header: Depth=1
-; GFX1030-NEXT:    v_readfirstlane_b32 s4, v10
-; GFX1030-NEXT:    v_readfirstlane_b32 s5, v11
+; GFX1030-NEXT:    v_readfirstlane_b32 s4, v17
+; GFX1030-NEXT:    v_readfirstlane_b32 s5, v18
 ; GFX1030-NEXT:    v_readfirstlane_b32 s6, v12
 ; GFX1030-NEXT:    v_readfirstlane_b32 s7, v13
-; GFX1030-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[10:11]
+; GFX1030-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[17:18]
 ; GFX1030-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[12:13]
 ; GFX1030-NEXT:    s_and_b32 s0, vcc_lo, s0
 ; GFX1030-NEXT:    s_and_saveexec_b32 s0, s0
-; GFX1030-NEXT:    image_bvh64_intersect_ray v[0:3], v[14:22], s[4:7] a16
-; GFX1030-NEXT:    ; implicit-def: $vgpr10
-; GFX1030-NEXT:    ; implicit-def: $vgpr14
-; GFX1030-NEXT:    ; implicit-def: $vgpr15
-; GFX1030-NEXT:    ; implicit-def: $vgpr16
+; GFX1030-NEXT:    image_bvh64_intersect_ray v[0:3], v[19:27], s[4:7] a16
 ; GFX1030-NEXT:    ; implicit-def: $vgpr17
-; GFX1030-NEXT:    ; implicit-def: $vgpr18
 ; GFX1030-NEXT:    ; implicit-def: $vgpr19
 ; GFX1030-NEXT:    ; implicit-def: $vgpr20
 ; GFX1030-NEXT:    ; implicit-def: $vgpr21
 ; GFX1030-NEXT:    ; implicit-def: $vgpr22
+; GFX1030-NEXT:    ; implicit-def: $vgpr23
+; GFX1030-NEXT:    ; implicit-def: $vgpr24
+; GFX1030-NEXT:    ; implicit-def: $vgpr25
+; GFX1030-NEXT:    ; implicit-def: $vgpr26
+; GFX1030-NEXT:    ; implicit-def: $vgpr27
 ; GFX1030-NEXT:    ; implicit-def: $vgpr10_vgpr11_vgpr12_vgpr13
 ; GFX1030-NEXT:    s_xor_b32 exec_lo, exec_lo, s0
 ; GFX1030-NEXT:    s_cbranch_execnz .LBB9_1
@@ -529,26 +548,28 @@ define amdgpu_ps <4 x float> @image_bvh64_intersect_ray_a16_vgpr_descr(i64 %node
 ;
 ; GFX1013-LABEL: image_bvh64_intersect_ray_a16_vgpr_descr:
 ; GFX1013:       ; %bb.0:
-; GFX1013-NEXT:    v_lshrrev_b32_e32 v14, 16, v6
-; GFX1013-NEXT:    v_and_b32_e32 v15, 0xffff, v8
+; GFX1013-NEXT:    v_mov_b32_e32 v18, v10
+; GFX1013-NEXT:    v_mov_b32_e32 v19, v11
+; GFX1013-NEXT:    v_lshrrev_b32_e32 v10, 16, v6
+; GFX1013-NEXT:    v_and_b32_e32 v11, 0xffff, v8
 ; GFX1013-NEXT:    v_and_b32_e32 v9, 0xffff, v9
 ; GFX1013-NEXT:    s_mov_b32 s1, exec_lo
-; GFX1013-NEXT:    v_lshlrev_b32_e32 v14, 16, v14
-; GFX1013-NEXT:    v_lshlrev_b32_e32 v15, 16, v15
+; GFX1013-NEXT:    v_lshlrev_b32_e32 v10, 16, v10
+; GFX1013-NEXT:    v_lshlrev_b32_e32 v11, 16, v11
 ; GFX1013-NEXT:    v_alignbit_b32 v8, v9, v8, 16
-; GFX1013-NEXT:    v_and_or_b32 v6, 0xffff, v6, v14
-; GFX1013-NEXT:    v_and_or_b32 v7, 0xffff, v7, v15
+; GFX1013-NEXT:    v_and_or_b32 v6, 0xffff, v6, v10
+; GFX1013-NEXT:    v_and_or_b32 v7, 0xffff, v7, v11
 ; GFX1013-NEXT:  .LBB9_1: ; =>This Inner Loop Header: Depth=1
-; GFX1013-NEXT:    v_readfirstlane_b32 s4, v10
-; GFX1013-NEXT:    v_readfirstlane_b32 s5, v11
+; GFX1013-NEXT:    v_readfirstlane_b32 s4, v18
+; GFX1013-NEXT:    v_readfirstlane_b32 s5, v19
 ; GFX1013-NEXT:    v_readfirstlane_b32 s6, v12
 ; GFX1013-NEXT:    v_readfirstlane_b32 s7, v13
-; GFX1013-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[10:11]
+; GFX1013-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[18:19]
 ; GFX1013-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[12:13]
 ; GFX1013-NEXT:    s_and_b32 s0, vcc_lo, s0
 ; GFX1013-NEXT:    s_and_saveexec_b32 s0, s0
 ; GFX1013-NEXT:    image_bvh64_intersect_ray v[14:17], v[0:8], s[4:7] a16
-; GFX1013-NEXT:    ; implicit-def: $vgpr10
+; GFX1013-NEXT:    ; implicit-def: $vgpr18
 ; GFX1013-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8
 ; GFX1013-NEXT:    ; implicit-def: $vgpr10_vgpr11_vgpr12_vgpr13
 ; GFX1013-NEXT:    s_waitcnt_depctr 0xffe3
@@ -570,28 +591,28 @@ define amdgpu_ps <4 x float> @image_bvh64_intersect_ray_a16_vgpr_descr(i64 %node
 ; GFX11-NEXT:    v_and_b32_e32 v1, 0xffff, v9
 ; GFX11-NEXT:    v_dual_mov_b32 v19, v2 :: v_dual_mov_b32 v14, v3
 ; GFX11-NEXT:    v_dual_mov_b32 v15, v4 :: v_dual_mov_b32 v16, v5
-; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_4)
-; GFX11-NEXT:    v_lshl_or_b32 v4, v6, 16, v0
-; GFX11-NEXT:    v_perm_b32 v5, v6, v8, 0x7060302
-; GFX11-NEXT:    v_lshl_or_b32 v6, v7, 16, v1
+; GFX11-NEXT:    v_dual_mov_b32 v4, v10 :: v_dual_mov_b32 v5, v11
+; GFX11-NEXT:    v_lshl_or_b32 v20, v6, 16, v0
+; GFX11-NEXT:    v_perm_b32 v21, v6, v8, 0x7060302
+; GFX11-NEXT:    v_lshl_or_b32 v22, v7, 16, v1
 ; GFX11-NEXT:    s_mov_b32 s1, exec_lo
 ; GFX11-NEXT:  .LBB9_1: ; =>This Inner Loop Header: Depth=1
-; GFX11-NEXT:    v_readfirstlane_b32 s4, v10
-; GFX11-NEXT:    v_readfirstlane_b32 s5, v11
+; GFX11-NEXT:    v_readfirstlane_b32 s4, v4
+; GFX11-NEXT:    v_readfirstlane_b32 s5, v5
 ; GFX11-NEXT:    v_readfirstlane_b32 s6, v12
 ; GFX11-NEXT:    v_readfirstlane_b32 s7, v13
 ; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)
-; GFX11-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[10:11]
+; GFX11-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[4:5]
 ; GFX11-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[12:13]
 ; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(SALU_CYCLE_1)
 ; GFX11-NEXT:    s_and_b32 s0, vcc_lo, s0
 ; GFX11-NEXT:    s_and_saveexec_b32 s0, s0
-; GFX11-NEXT:    image_bvh64_intersect_ray v[0:3], [v[17:18], v19, v[14:16], v[4:6]], s[4:7] a16
-; GFX11-NEXT:    ; implicit-def: $vgpr10
+; GFX11-NEXT:    image_bvh64_intersect_ray v[0:3], [v[17:18], v19, v[14:16], v[20:22]], s[4:7] a16
+; GFX11-NEXT:    ; implicit-def: $vgpr4
 ; GFX11-NEXT:    ; implicit-def: $vgpr17_vgpr18
 ; GFX11-NEXT:    ; implicit-def: $vgpr19
 ; GFX11-NEXT:    ; implicit-def: $vgpr14_vgpr15_vgpr16
-; GFX11-NEXT:    ; implicit-def: $vgpr4_vgpr5_vgpr6
+; GFX11-NEXT:    ; implicit-def: $vgpr20_vgpr21_vgpr22
 ; GFX11-NEXT:    ; implicit-def: $vgpr10_vgpr11_vgpr12_vgpr13
 ; GFX11-NEXT:    s_xor_b32 exec_lo, exec_lo, s0
 ; GFX11-NEXT:    s_cbranch_execnz .LBB9_1
diff --git a/llvm/test/CodeGen/AMDGPU/live-interval-bug-in-rename-independent-subregs.mir b/llvm/test/CodeGen/AMDGPU/live-interval-bug-in-rename-independent-subregs.mir
index f9e91810e8affe..510b9c9a33c7dc 100644
--- a/llvm/test/CodeGen/AMDGPU/live-interval-bug-in-rename-independent-subregs.mir
+++ b/llvm/test/CodeGen/AMDGPU/live-interval-bug-in-rename-independent-subregs.mir
@@ -3510,34 +3510,34 @@ body:             |
   ; GCN-NEXT:   renamable $vgpr1 = COPY renamable $sgpr14
   ; GCN-NEXT:   renamable $vgpr1_vgpr2_vgpr3_vgpr4 = BUFFER_LOAD_DWORDX4_OFFEN killed renamable $vgpr1, renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (<4 x s32>), align 1, addrspace 8)
   ; GCN-NEXT:   renamable $vgpr5 = V_MBCNT_LO_U32_B32_e64 -1, 0, implicit $exec
-  ; GCN-NEXT:   renamable $vgpr16 = V_MBCNT_HI_U32_B32_e64 -1, killed $vgpr5, implicit $exec
+  ; GCN-NEXT:   renamable $vgpr17 = V_MBCNT_HI_U32_B32_e64 -1, killed $vgpr5, implicit $exec
   ; GCN-NEXT:   renamable $sgpr14 = S_OR_B32 killed renamable $sgpr14, 16, implicit-def dead $scc
   ; GCN-NEXT:   renamable $vgpr5 = COPY killed renamable $sgpr14
-  ; GCN-NEXT:   renamable $vgpr6 = V_LSHLREV_B32_e64 5, $vgpr16, implicit $exec
-  ; GCN-NEXT:   renamable $vgpr12_vgpr13_vgpr14_vgpr15 = BUFFER_LOAD_DWORDX4_OFFEN killed renamable $vgpr5, renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (<4 x s32>), align 1, addrspace 8)
+  ; GCN-NEXT:   renamable $vgpr6 = V_LSHLREV_B32_e64 5, $vgpr17, implicit $exec
+  ; GCN-NEXT:   renamable $vgpr13_vgpr14_vgpr15_vgpr16 = BUFFER_LOAD_DWORDX4_OFFEN killed renamable $vgpr5, renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (<4 x s32>), align 1, addrspace 8)
   ; GCN-NEXT:   renamable $vgpr5 = V_OR_B32_e64 16, $vgpr6, implicit $exec
   ; GCN-NEXT:   renamable $sgpr14 = V_READFIRSTLANE_B32 $vgpr1, implicit $exec
-  ; GCN-NEXT:   renamable $vgpr8_vgpr9_vgpr10_vgpr11 = BUFFER_LOAD_DWORDX4_OFFEN killed renamable $vgpr6, renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (<4 x s32>), align 1, addrspace 8)
+  ; GCN-NEXT:   renamable $vgpr9_vgpr10_vgpr11_vgpr12 = BUFFER_LOAD_DWORDX4_OFFEN killed renamable $vgpr6, renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (<4 x s32>), align 1, addrspace 8)
   ; GCN-NEXT:   renamable $sgpr15 = V_READFIRSTLANE_B32 $vgpr2, implicit $exec
   ; GCN-NEXT:   renamable $sgpr16 = V_READFIRSTLANE_B32 $vgpr3, implicit $exec
   ; GCN-NEXT:   renamable $sgpr17 = V_READFIRSTLANE_B32 killed $vgpr4, implicit $exec
-  ; GCN-NEXT:   renamable $vgpr4_vgpr5_vgpr6_vgpr7 = BUFFER_LOAD_DWORDX4_OFFEN killed renamable $vgpr5, renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (<4 x s32>), align 1, addrspace 8)
-  ; GCN-NEXT:   renamable $sgpr18 = V_READFIRSTLANE_B32 $vgpr12, implicit $exec
-  ; GCN-NEXT:   renamable $sgpr19 = V_READFIRSTLANE_B32 $vgpr13, implicit $exec
-  ; GCN-NEXT:   renamable $sgpr20 = V_READFIRSTLANE_B32 $vgpr14, implicit $exec
-  ; GCN-NEXT:   renamable $sgpr21 = V_READFIRSTLANE_B32 killed $vgpr15, implicit $exec
-  ; GCN-NEXT:   renamable $sgpr22 = V_READFIRSTLANE_B32 $vgpr8, implicit $exec
-  ; GCN-NEXT:   renamable $sgpr23 = V_READFIRSTLANE_B32 $vgpr9, implicit $exec
-  ; GCN-NEXT:   renamable $sgpr24 = V_READFIRSTLANE_B32 $vgpr10, implicit $exec
-  ; GCN-NEXT:   renamable $sgpr25 = V_READFIRSTLANE_B32 $vgpr11, implicit $exec
-  ; GCN-NEXT:   renamable $sgpr26 = V_READFIRSTLANE_B32 $vgpr4, implicit $exec
-  ; GCN-NEXT:   renamable $sgpr27 = V_READFIRSTLANE_B32 $vgpr5, implicit $exec
-  ; GCN-NEXT:   renamable $vgpr1 = COPY renamable $vgpr7
+  ; GCN-NEXT:   renamable $vgpr5_vgpr6_vgpr7_vgpr8 = BUFFER_LOAD_DWORDX4_OFFEN killed renamable $vgpr5, renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (<4 x s32>), align 1, addrspace 8)
+  ; GCN-NEXT:   renamable $sgpr18 = V_READFIRSTLANE_B32 $vgpr13, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr19 = V_READFIRSTLANE_B32 $vgpr14, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr20 = V_READFIRSTLANE_B32 $vgpr15, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr21 = V_READFIRSTLANE_B32 killed $vgpr16, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr22 = V_READFIRSTLANE_B32 $vgpr9, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr23 = V_READFIRSTLANE_B32 $vgpr10, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr24 = V_READFIRSTLANE_B32 $vgpr11, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr25 = V_READFIRSTLANE_B32 $vgpr12, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr26 = V_READFIRSTLANE_B32 $vgpr5, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr27 = V_READFIRSTLANE_B32 $vgpr6, implicit $exec
+  ; GCN-NEXT:   renamable $vgpr13 = COPY renamable $vgpr8
   ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr14_sgpr15, killed renamable $sgpr22_sgpr23, implicit-def $scc
-  ; GCN-NEXT:   renamable $sgpr14 = V_READFIRSTLANE_B32 $vgpr6, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr14 = V_READFIRSTLANE_B32 $vgpr7, implicit $exec
   ; GCN-NEXT:   renamable $sgpr22 = S_CSELECT_B32 1, 0, implicit $scc
   ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr16_sgpr17, killed renamable $sgpr24_sgpr25, implicit-def $scc
-  ; GCN-NEXT:   renamable $sgpr15 = V_READFIRSTLANE_B32 $vgpr1, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr15 = V_READFIRSTLANE_B32 $vgpr13, implicit $exec
   ; GCN-NEXT:   renamable $sgpr16 = S_CSELECT_B32 1, 0, implicit $scc
   ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr18_sgpr19, killed renamable $sgpr26_sgpr27, implicit-def $scc
   ; GCN-NEXT:   renamable $sgpr17 = S_CSELECT_B32 1, 0, implicit $scc
@@ -3546,12 +3546,12 @@ body:             |
   ; GCN-NEXT:   renamable $sgpr15 = S_AND_B32 killed renamable $sgpr22, killed renamable $sgpr16, implicit-def dead $scc
   ; GCN-NEXT:   renamable $sgpr15 = S_AND_B32 killed renamable $sgpr17, killed renamable $sgpr15, implicit-def dead $scc
   ; GCN-NEXT:   renamable $sgpr14 = S_AND_B32 killed renamable $sgpr14, killed renamable $sgpr15, implicit-def dead $scc
-  ; GCN-NEXT:   renamable $vcc = V_CMP_NE_U32_e64 $sgpr7, killed $vgpr16, implicit $exec
+  ; GCN-NEXT:   renamable $vcc = V_CMP_NE_U32_e64 $sgpr7, killed $vgpr17, implicit $exec
   ; GCN-NEXT:   renamable $sgpr14 = S_AND_B32 killed renamable $sgpr14, 1, implicit-def dead $scc
   ; GCN-NEXT:   $scc = COPY killed renamable $sgpr14
   ; GCN-NEXT:   renamable $sgpr33 = S_CSELECT_B32 1, 0, implicit $scc
   ; GCN-NEXT:   renamable $sgpr12_sgpr13 = S_XOR_B64 killed renamable $vcc, killed renamable $sgpr12_sgpr13, implicit-def dead $scc
-  ; GCN-NEXT:   renamable $vgpr3 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $vgpr15 = IMPLICIT_DEF
   ; GCN-NEXT:   renamable $sgpr14_sgpr15 = COPY $exec, implicit-def $exec
   ; GCN-NEXT:   renamable $sgpr16_sgpr17 = S_AND_B64 renamable $sgpr14_sgpr15, killed renamable $sgpr12_sgpr13, implicit-def dead $scc
   ; GCN-NEXT:   renamable $sgpr12_sgpr13 = S_XOR_B64 renamable $sgpr16_sgpr17, killed renamable $sgpr14_sgpr15, implicit-def dead $scc
@@ -3561,7 +3561,7 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.40.Flow73:
   ; GCN-NEXT:   successors: %bb.41(0x40000000), %bb.42(0x40000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $vgpr0, $vgpr3, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $vgpr0, $vgpr15, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr12_sgpr13 = S_OR_SAVEEXEC_B64 killed renamable $sgpr12_sgpr13, implicit-def $exec, implicit-def $scc, implicit $exec
   ; GCN-NEXT:   $exec = S_XOR_B64_term $exec, renamable $sgpr12_sgpr13, implicit-def $scc
@@ -3570,7 +3570,7 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.41 (%ir-block.195):
   ; GCN-NEXT:   successors: %bb.43(0x80000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr28_sgpr29 = S_MOV_B64_IMM_PSEUDO 3
   ; GCN-NEXT:   renamable $sgpr22_sgpr23 = S_AND_B64 $exec, $exec, implicit-def dead $scc
@@ -3578,14 +3578,14 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.42.Flow74:
   ; GCN-NEXT:   successors: %bb.83(0x80000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $vgpr0, $vgpr3, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $vgpr0, $vgpr15, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   $exec = S_OR_B64 $exec, killed renamable $sgpr12_sgpr13, implicit-def $scc
   ; GCN-NEXT:   S_BRANCH %bb.83
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.43 (%ir-block.198):
   ; GCN-NEXT:   successors: %bb.44(0x30000000), %bb.45(0x50000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr22_sgpr23, $sgpr28_sgpr29:0x000000000000000F, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr22_sgpr23, $sgpr28_sgpr29:0x000000000000000F, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr14_sgpr15 = COPY killed renamable $sgpr28_sgpr29
   ; GCN-NEXT:   renamable $sgpr28_sgpr29 = IMPLICIT_DEF
@@ -3616,7 +3616,7 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.44 (%ir-block.202):
   ; GCN-NEXT:   successors: %bb.46(0x30000000), %bb.47(0x50000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x000000000000000F, $sgpr22_sgpr23, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x000000000000000F, $sgpr22_sgpr23, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr16 = S_ADD_U32 renamable $sgpr14, -2, implicit-def dead $scc
   ; GCN-NEXT:   renamable $sgpr36 = S_MOV_B32 0
@@ -3645,7 +3645,7 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.45.Flow65:
   ; GCN-NEXT:   successors: %bb.94(0x04000000), %bb.43(0x7c000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr17, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr28_sgpr29:0x000000000000000F, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr17, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr28_sgpr29:0x000000000000000F, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr15 = S_AND_B32 killed renamable $sgpr17, 1, implicit-def dead $scc
   ; GCN-NEXT:   $scc = COPY killed renamable $sgpr15
@@ -3654,7 +3654,7 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.46 (%ir-block.223):
   ; GCN-NEXT:   successors: %bb.48(0x30000000), %bb.49(0x50000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr36, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x000000000000000F, $sgpr16_sgpr17:0x0000000000000003, $sgpr22_sgpr23, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr36, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x000000000000000F, $sgpr16_sgpr17:0x0000000000000003, $sgpr22_sgpr23, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr18 = S_ADD_U32 renamable $sgpr14, -1, implicit-def dead $scc
   ; GCN-NEXT:   renamable $sgpr35 = S_MOV_B32 0
@@ -3681,13 +3681,13 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.47.Flow66:
   ; GCN-NEXT:   successors: %bb.45(0x80000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr17, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr28_sgpr29:0x000000000000000F, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr17, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr28_sgpr29:0x000000000000000F, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   S_BRANCH %bb.45
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.48 (%ir-block.242):
   ; GCN-NEXT:   successors: %bb.50(0x30000000), %bb.51(0x50000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x000000000000000F, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr22_sgpr23, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x000000000000000F, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr22_sgpr23, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr20_sgpr21 = nuw S_LSHL_B64 1, renamable $sgpr14, implicit-def dead $scc
   ; GCN-NEXT:   renamable $sgpr37 = S_MOV_B32 0
@@ -3712,13 +3712,13 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.49.Flow67:
   ; GCN-NEXT:   successors: %bb.47(0x80000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr17, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr28_sgpr29:0x000000000000000F, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr17, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr28_sgpr29:0x000000000000000F, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   S_BRANCH %bb.47
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.50 (%ir-block.258):
   ; GCN-NEXT:   successors: %bb.52(0x30000000), %bb.53(0x50000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x000000000000000F, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr22_sgpr23, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x000000000000000F, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr22_sgpr23, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr20 = S_ADD_U32 renamable $sgpr14, 1, implicit-def dead $scc
   ; GCN-NEXT:   renamable $sgpr24_sgpr25 = nuw S_LSHL_B64 1, renamable $sgpr20, implicit-def dead $scc
@@ -3742,13 +3742,13 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.51.Flow68:
   ; GCN-NEXT:   successors: %bb.49(0x80000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr17, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr28_sgpr29:0x000000000000000F, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr17, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr28_sgpr29:0x000000000000000F, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   S_BRANCH %bb.49
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.52 (%ir-block.274):
   ; GCN-NEXT:   successors: %bb.54(0x30000000), %bb.55(0x50000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr39, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x000000000000000F, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr39, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x000000000000000F, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr24 = S_ADD_U32 renamable $sgpr14, 2, implicit-def dead $scc
   ; GCN-NEXT:   renamable $sgpr26_sgpr27 = nuw S_LSHL_B64 1, renamable $sgpr24, implicit-def dead $scc
@@ -3770,13 +3770,13 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.53.Flow69:
   ; GCN-NEXT:   successors: %bb.51(0x80000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr17, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr28_sgpr29:0x000000000000000F, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr17, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr28_sgpr29:0x000000000000000F, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   S_BRANCH %bb.51
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.54 (%ir-block.288):
   ; GCN-NEXT:   successors: %bb.56(0x30000000), %bb.57(0x50000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr39, $sgpr40, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x000000000000000F, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr39, $sgpr40, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x000000000000000F, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr26 = S_ADD_U32 renamable $sgpr14, 3, implicit-def dead $scc
   ; GCN-NEXT:   renamable $sgpr28_sgpr29 = nuw S_LSHL_B64 1, renamable $sgpr26, implicit-def dead $scc
@@ -3796,13 +3796,13 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.55.Flow70:
   ; GCN-NEXT:   successors: %bb.53(0x80000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr17, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr28_sgpr29:0x000000000000000F, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr17, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr28_sgpr29:0x000000000000000F, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   S_BRANCH %bb.53
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.56 (%ir-block.300):
   ; GCN-NEXT:   successors: %bb.58(0x30000000), %bb.93(0x50000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr39, $sgpr40, $sgpr41, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x000000000000000F, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr39, $sgpr40, $sgpr41, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x000000000000000F, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr30 = S_ADD_U32 renamable $sgpr14, 4, implicit-def dead $scc
   ; GCN-NEXT:   renamable $sgpr28_sgpr29 = nuw S_LSHL_B64 1, renamable $sgpr30, implicit-def dead $scc
@@ -3819,13 +3819,13 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.57.Flow71:
   ; GCN-NEXT:   successors: %bb.55(0x80000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr17, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr28_sgpr29:0x000000000000000F, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr17, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr28_sgpr29:0x000000000000000F, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   S_BRANCH %bb.55
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.58 (%ir-block.310):
   ; GCN-NEXT:   successors: %bb.93(0x80000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr39, $sgpr40, $sgpr41, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x000000000000000F, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr39, $sgpr40, $sgpr41, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x000000000000000F, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr28 = S_ADD_U32 renamable $sgpr14, 8, implicit-def $scc
   ; GCN-NEXT:   renamable $sgpr17 = COPY $scc
@@ -3839,7 +3839,7 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.59.Flow62:
   ; GCN-NEXT:   successors: %bb.60(0x40000000), %bb.80(0x40000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr16_sgpr17:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr16_sgpr17:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr14 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
   ; GCN-NEXT:   renamable $sgpr14 = S_AND_B32 killed renamable $sgpr14, 1, implicit-def dead $scc
@@ -3849,14 +3849,14 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.60..splitsplitsplitsplitsplitsplitsplit_crit_edge:
   ; GCN-NEXT:   successors: %bb.80(0x80000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr16_sgpr17:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr16_sgpr17:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr7 = COPY killed renamable $sgpr16
   ; GCN-NEXT:   S_BRANCH %bb.80
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.61.Flow60:
   ; GCN-NEXT:   successors: %bb.62(0x40000000), %bb.79(0x40000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr14 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
   ; GCN-NEXT:   renamable $sgpr14 = S_AND_B32 killed renamable $sgpr14, 1, implicit-def dead $scc
@@ -3866,14 +3866,14 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.62..splitsplitsplitsplitsplitsplit_crit_edge:
   ; GCN-NEXT:   successors: %bb.79(0x80000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr7 = COPY killed renamable $sgpr18
   ; GCN-NEXT:   S_BRANCH %bb.79
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.63.Flow58:
   ; GCN-NEXT:   successors: %bb.64(0x40000000), %bb.78(0x40000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
   ; GCN-NEXT:   renamable $sgpr15 = S_AND_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
@@ -3883,14 +3883,14 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.64..splitsplitsplitsplitsplit_crit_edge:
   ; GCN-NEXT:   successors: %bb.78(0x80000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr7 = COPY killed renamable $sgpr14
   ; GCN-NEXT:   S_BRANCH %bb.78
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.65.Flow56:
   ; GCN-NEXT:   successors: %bb.66(0x40000000), %bb.77(0x40000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
   ; GCN-NEXT:   renamable $sgpr15 = S_AND_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
@@ -3900,14 +3900,14 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.66..splitsplitsplitsplit_crit_edge:
   ; GCN-NEXT:   successors: %bb.77(0x80000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr7 = COPY killed renamable $sgpr20
   ; GCN-NEXT:   S_BRANCH %bb.77
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.67.Flow54:
   ; GCN-NEXT:   successors: %bb.68(0x40000000), %bb.76(0x40000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
   ; GCN-NEXT:   renamable $sgpr15 = S_AND_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
@@ -3917,14 +3917,14 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.68..splitsplitsplit_crit_edge:
   ; GCN-NEXT:   successors: %bb.76(0x80000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr7 = COPY killed renamable $sgpr24
   ; GCN-NEXT:   S_BRANCH %bb.76
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.69.Flow52:
   ; GCN-NEXT:   successors: %bb.70(0x40000000), %bb.75(0x40000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
   ; GCN-NEXT:   renamable $sgpr15 = S_AND_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
@@ -3934,21 +3934,21 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.70..splitsplit_crit_edge:
   ; GCN-NEXT:   successors: %bb.75(0x80000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr7 = COPY killed renamable $sgpr26
   ; GCN-NEXT:   S_BRANCH %bb.75
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.71..split_crit_edge:
   ; GCN-NEXT:   successors: %bb.74(0x80000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr7 = COPY killed renamable $sgpr30
   ; GCN-NEXT:   S_BRANCH %bb.74
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.72.Flow64:
   ; GCN-NEXT:   successors: %bb.73(0x40000000), %bb.81(0x40000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr15, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr14 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
   ; GCN-NEXT:   renamable $sgpr14 = S_AND_B32 killed renamable $sgpr14, 1, implicit-def dead $scc
@@ -3958,89 +3958,89 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.73.._crit_edge:
   ; GCN-NEXT:   successors: %bb.81(0x80000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr7 = COPY killed renamable $sgpr34
   ; GCN-NEXT:   S_BRANCH %bb.81
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.74.Flow:
   ; GCN-NEXT:   successors: %bb.69(0x80000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 0
   ; GCN-NEXT:   S_BRANCH %bb.69
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.75.Flow53:
   ; GCN-NEXT:   successors: %bb.67(0x80000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 0
   ; GCN-NEXT:   S_BRANCH %bb.67
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.76.Flow55:
   ; GCN-NEXT:   successors: %bb.65(0x80000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 0
   ; GCN-NEXT:   S_BRANCH %bb.65
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.77.Flow57:
   ; GCN-NEXT:   successors: %bb.63(0x80000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 0
   ; GCN-NEXT:   S_BRANCH %bb.63
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.78.Flow59:
   ; GCN-NEXT:   successors: %bb.61(0x80000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 0
   ; GCN-NEXT:   S_BRANCH %bb.61
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.79.Flow61:
   ; GCN-NEXT:   successors: %bb.59(0x80000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr16_sgpr17:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr16_sgpr17:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 0
   ; GCN-NEXT:   S_BRANCH %bb.59
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.80.Flow63:
   ; GCN-NEXT:   successors: %bb.72(0x80000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr15 = S_MOV_B32 0
   ; GCN-NEXT:   S_BRANCH %bb.72
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.81 (%ir-block.332):
   ; GCN-NEXT:   successors: %bb.42(0x80000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr7 = S_LSHL_B32 killed renamable $sgpr7, 5, implicit-def dead $scc
-  ; GCN-NEXT:   renamable $vgpr2 = COPY renamable $sgpr7
+  ; GCN-NEXT:   renamable $vgpr1 = COPY renamable $sgpr7
   ; GCN-NEXT:   renamable $sgpr7 = S_OR_B32 killed renamable $sgpr7, 16, implicit-def dead $scc
-  ; GCN-NEXT:   renamable $sgpr14 = V_READFIRSTLANE_B32 $vgpr8, implicit $exec
-  ; GCN-NEXT:   renamable $vgpr3 = COPY killed renamable $sgpr7
-  ; GCN-NEXT:   renamable $vgpr12_vgpr13_vgpr14_vgpr15 = BUFFER_LOAD_DWORDX4_OFFEN killed renamable $vgpr2, renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (<4 x s32>), align 1, addrspace 8)
-  ; GCN-NEXT:   renamable $sgpr15 = V_READFIRSTLANE_B32 $vgpr9, implicit $exec
-  ; GCN-NEXT:   renamable $sgpr16 = V_READFIRSTLANE_B32 $vgpr10, implicit $exec
-  ; GCN-NEXT:   renamable $sgpr17 = V_READFIRSTLANE_B32 killed $vgpr11, implicit $exec
-  ; GCN-NEXT:   renamable $vgpr7_vgpr8_vgpr9_vgpr10 = BUFFER_LOAD_DWORDX4_OFFEN killed renamable $vgpr3, killed renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (<4 x s32>), align 1, addrspace 8)
-  ; GCN-NEXT:   renamable $sgpr0 = V_READFIRSTLANE_B32 $vgpr4, implicit $exec
-  ; GCN-NEXT:   renamable $sgpr1 = V_READFIRSTLANE_B32 $vgpr5, implicit $exec
-  ; GCN-NEXT:   renamable $sgpr2 = V_READFIRSTLANE_B32 killed $vgpr6, implicit $exec
-  ; GCN-NEXT:   renamable $sgpr3 = V_READFIRSTLANE_B32 killed $vgpr1, implicit $exec
-  ; GCN-NEXT:   renamable $sgpr18 = V_READFIRSTLANE_B32 $vgpr12, implicit $exec
-  ; GCN-NEXT:   renamable $sgpr19 = V_READFIRSTLANE_B32 $vgpr13, implicit $exec
-  ; GCN-NEXT:   renamable $sgpr20 = V_READFIRSTLANE_B32 $vgpr14, implicit $exec
-  ; GCN-NEXT:   renamable $sgpr21 = V_READFIRSTLANE_B32 killed $vgpr15, implicit $exec
-  ; GCN-NEXT:   renamable $sgpr22 = V_READFIRSTLANE_B32 $vgpr7, implicit $exec
-  ; GCN-NEXT:   renamable $sgpr23 = V_READFIRSTLANE_B32 $vgpr8, implicit $exec
-  ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr18_sgpr19, killed renamable $sgpr14_sgpr15, implicit-def $scc
   ; GCN-NEXT:   renamable $sgpr14 = V_READFIRSTLANE_B32 $vgpr9, implicit $exec
+  ; GCN-NEXT:   renamable $vgpr8 = COPY killed renamable $sgpr7
+  ; GCN-NEXT:   renamable $vgpr1_vgpr2_vgpr3_vgpr4 = BUFFER_LOAD_DWORDX4_OFFEN killed renamable $vgpr1, renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (<4 x s32>), align 1, addrspace 8)
+  ; GCN-NEXT:   renamable $sgpr15 = V_READFIRSTLANE_B32 $vgpr10, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr16 = V_READFIRSTLANE_B32 $vgpr11, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr17 = V_READFIRSTLANE_B32 killed $vgpr12, implicit $exec
+  ; GCN-NEXT:   renamable $vgpr8_vgpr9_vgpr10_vgpr11 = BUFFER_LOAD_DWORDX4_OFFEN killed renamable $vgpr8, killed renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (<4 x s32>), align 1, addrspace 8)
+  ; GCN-NEXT:   renamable $sgpr0 = V_READFIRSTLANE_B32 $vgpr5, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr1 = V_READFIRSTLANE_B32 $vgpr6, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr2 = V_READFIRSTLANE_B32 killed $vgpr7, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr3 = V_READFIRSTLANE_B32 killed $vgpr13, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr18 = V_READFIRSTLANE_B32 $vgpr1, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr19 = V_READFIRSTLANE_B32 $vgpr2, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr20 = V_READFIRSTLANE_B32 $vgpr3, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr21 = V_READFIRSTLANE_B32 killed $vgpr4, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr22 = V_READFIRSTLANE_B32 $vgpr8, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr23 = V_READFIRSTLANE_B32 $vgpr9, implicit $exec
+  ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr18_sgpr19, killed renamable $sgpr14_sgpr15, implicit-def $scc
+  ; GCN-NEXT:   renamable $sgpr14 = V_READFIRSTLANE_B32 $vgpr10, implicit $exec
   ; GCN-NEXT:   renamable $sgpr7 = S_CSELECT_B32 1, 0, implicit $scc
   ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr20_sgpr21, killed renamable $sgpr16_sgpr17, implicit-def $scc
-  ; GCN-NEXT:   renamable $sgpr15 = V_READFIRSTLANE_B32 killed $vgpr10, implicit $exec
+  ; GCN-NEXT:   renamable $sgpr15 = V_READFIRSTLANE_B32 killed $vgpr11, implicit $exec
   ; GCN-NEXT:   renamable $sgpr16 = S_CSELECT_B32 1, 0, implicit $scc
   ; GCN-NEXT:   S_CMP_EQ_U64 killed renamable $sgpr22_sgpr23, killed renamable $sgpr0_sgpr1, implicit-def $scc
   ; GCN-NEXT:   renamable $sgpr0 = S_CSELECT_B32 1, 0, implicit $scc
@@ -4054,7 +4054,7 @@ body:             |
   ; GCN-NEXT:   renamable $sgpr0 = S_CSELECT_B32 1, 0, implicit $scc
   ; GCN-NEXT:   renamable $sgpr0 = S_LSHL_B32 killed renamable $sgpr0, 1, implicit-def dead $scc
   ; GCN-NEXT:   renamable $sgpr0 = S_OR_B32 killed renamable $sgpr0, killed renamable $sgpr33, implicit-def dead $scc
-  ; GCN-NEXT:   renamable $vgpr3 = COPY killed renamable $sgpr0
+  ; GCN-NEXT:   renamable $vgpr15 = COPY killed renamable $sgpr0
   ; GCN-NEXT:   S_BRANCH %bb.42
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.82 (%ir-block.363):
@@ -4062,14 +4062,14 @@ body:             |
   ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr0_sgpr1_sgpr2_sgpr3
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr14 = S_OR_B32 renamable $sgpr33, 2, implicit-def dead $scc
-  ; GCN-NEXT:   renamable $vgpr3 = COPY killed renamable $sgpr14
-  ; GCN-NEXT:   renamable $vgpr8_vgpr9 = IMPLICIT_DEF
-  ; GCN-NEXT:   renamable $vgpr1_vgpr2 = IMPLICIT_DEF
-  ; GCN-NEXT:   renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $vgpr15 = COPY killed renamable $sgpr14
+  ; GCN-NEXT:   renamable $vgpr9_vgpr10 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $vgpr13_vgpr14 = IMPLICIT_DEF
+  ; GCN-NEXT:   renamable $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8 = IMPLICIT_DEF
   ; GCN-NEXT:   S_BRANCH %bb.40
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.83 (%ir-block.365):
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $vgpr0, $vgpr3, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $vgpr0, $vgpr15, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr8_sgpr9 = S_LOAD_DWORDX2_IMM killed renamable $sgpr8_sgpr9, 0, 0 :: (invariant load (<2 x s32>) from %ir.numWorkgroupsPtr, align 16, addrspace 4)
   ; GCN-NEXT:   renamable $vgpr1 = COPY killed renamable $sgpr5
@@ -4080,7 +4080,7 @@ body:             |
   ; GCN-NEXT:   renamable $sgpr4 = S_LSHL_B32 killed renamable $sgpr4, 6, implicit-def dead $scc
   ; GCN-NEXT:   renamable $vgpr0 = V_ADD_U32_e64 killed $sgpr4, killed $vgpr0, 0, implicit $exec
   ; GCN-NEXT:   renamable $vgpr0 = V_ADD_LSHL_U32_e64 killed $vgpr1, killed $vgpr0, 2, implicit $exec
-  ; GCN-NEXT:   BUFFER_STORE_DWORD_OFFEN_exact killed renamable $vgpr3, killed renamable $vgpr0, killed renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 8)
+  ; GCN-NEXT:   BUFFER_STORE_DWORD_OFFEN_exact killed renamable $vgpr15, killed renamable $vgpr0, killed renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 8)
   ; GCN-NEXT:   S_ENDPGM 0
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.84.Flow96:
@@ -4185,14 +4185,14 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.93.Flow72:
   ; GCN-NEXT:   successors: %bb.57(0x80000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr17, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr28_sgpr29:0x000000000000000F, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr17, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr22_sgpr23, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr28_sgpr29:0x000000000000000F, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr42 = S_MOV_B32 0
   ; GCN-NEXT:   S_BRANCH %bb.57
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.94.loop.exit.guard37:
   ; GCN-NEXT:   successors: %bb.95(0x40000000), %bb.72(0x40000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr36, 1, implicit-def dead $scc
   ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
@@ -4204,7 +4204,7 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.95.loop.exit.guard38:
   ; GCN-NEXT:   successors: %bb.96(0x40000000), %bb.59(0x40000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr35, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr35, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr35, 1, implicit-def dead $scc
   ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
@@ -4216,7 +4216,7 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.96.loop.exit.guard39:
   ; GCN-NEXT:   successors: %bb.97(0x40000000), %bb.61(0x40000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr37, 1, implicit-def dead $scc
   ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
@@ -4228,7 +4228,7 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.97.loop.exit.guard40:
   ; GCN-NEXT:   successors: %bb.98(0x40000000), %bb.63(0x40000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr39, 1, implicit-def dead $scc
   ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
@@ -4240,7 +4240,7 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.98.loop.exit.guard41:
   ; GCN-NEXT:   successors: %bb.99(0x40000000), %bb.65(0x40000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr38, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr38, $sgpr40, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr40, 1, implicit-def dead $scc
   ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
@@ -4252,7 +4252,7 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.99.loop.exit.guard42:
   ; GCN-NEXT:   successors: %bb.100(0x40000000), %bb.67(0x40000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr38, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr38, $sgpr41, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr41, 1, implicit-def dead $scc
   ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
@@ -4264,7 +4264,7 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.100.loop.exit.guard43:
   ; GCN-NEXT:   successors: %bb.101(0x40000000), %bb.69(0x40000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr38, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr38, $sgpr42, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr42, 1, implicit-def dead $scc
   ; GCN-NEXT:   renamable $sgpr15 = S_XOR_B32 killed renamable $sgpr15, 1, implicit-def dead $scc
@@ -4276,7 +4276,7 @@ body:             |
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT: bb.101.loop.exit.guard44:
   ; GCN-NEXT:   successors: %bb.71(0x40000000), %bb.74(0x40000000)
-  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr38, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr1_vgpr2:0x0000000000000003, $vgpr8_vgpr9_vgpr10_vgpr11:0x00000000000000FF, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7:0x0000000000003F00
+  ; GCN-NEXT:   liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr33, $sgpr34, $sgpr38, $vgpr0, $sgpr8_sgpr9:0x000000000000000F, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15:0x0000000000000003, $sgpr16_sgpr17:0x0000000000000003, $sgpr18_sgpr19:0x0000000000000003, $sgpr20_sgpr21:0x0000000000000003, $sgpr24_sgpr25:0x0000000000000003, $sgpr26_sgpr27:0x0000000000000003, $sgpr30_sgpr31:0x0000000000000003, $sgpr0_sgpr1_sgpr2_sgpr3, $vgpr13_vgpr14:0x0000000000000003, $vgpr9_vgpr10_vgpr11_vgpr12:0x00000000000000FF, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8:0x0000000000003F00
   ; GCN-NEXT: {{  $}}
   ; GCN-NEXT:   renamable $sgpr15 = S_AND_B32 killed renamable $sgpr38, 1, implicit-def dead $scc
   ; GCN-NEXT:   $scc = COPY killed renamable $sgpr15



More information about the llvm-commits mailing list