1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -march=amdgcn -mcpu=gfx908 -run-pass postrapseudos -verify-machineinstrs %s -o - | FileCheck -check-prefix=GFX908 %s 3# RUN: llc -march=amdgcn -mcpu=gfx90a -run-pass postrapseudos -verify-machineinstrs %s -o - | FileCheck -check-prefix=GFX90A %s 4 5--- 6name: copy_v64_to_v64 7tracksRegLiveness: true 8body: | 9 bb.0: 10 liveins: $vgpr2_vgpr3 11 ; GFX908-LABEL: name: copy_v64_to_v64 12 ; GFX908: liveins: $vgpr2_vgpr3 13 ; GFX908: $vgpr0 = V_MOV_B32_e32 $vgpr2, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $vgpr2_vgpr3 14 ; GFX908: $vgpr1 = V_MOV_B32_e32 $vgpr3, implicit $exec, implicit killed $vgpr2_vgpr3, implicit $exec 15 ; GFX90A-LABEL: name: copy_v64_to_v64 16 ; GFX90A: liveins: $vgpr2_vgpr3 17 ; GFX90A: $vgpr0_vgpr1 = V_PK_MOV_B32 8, $vgpr2_vgpr3, 12, $vgpr2_vgpr3, 0, 0, 0, 0, 0, implicit $exec, implicit killed $vgpr2_vgpr3, implicit $exec 18 $vgpr0_vgpr1 = COPY killed $vgpr2_vgpr3, implicit $exec 19... 20 21--- 22name: copy_s64_to_v64 23tracksRegLiveness: true 24body: | 25 bb.0: 26 liveins: $sgpr2_sgpr3 27 ; GFX908-LABEL: name: copy_s64_to_v64 28 ; GFX908: liveins: $sgpr2_sgpr3 29 ; GFX908: $vgpr0 = V_MOV_B32_e32 $sgpr2, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $sgpr2_sgpr3 30 ; GFX908: $vgpr1 = V_MOV_B32_e32 $sgpr3, implicit $exec, implicit killed $sgpr2_sgpr3, implicit $exec 31 ; GFX90A-LABEL: name: copy_s64_to_v64 32 ; GFX90A: liveins: $sgpr2_sgpr3 33 ; GFX90A: $vgpr0_vgpr1 = V_PK_MOV_B32 8, $sgpr2_sgpr3, 12, $sgpr2_sgpr3, 0, 0, 0, 0, 0, implicit $exec, implicit killed $sgpr2_sgpr3, implicit $exec 34 $vgpr0_vgpr1 = COPY killed $sgpr2_sgpr3, implicit $exec 35... 36 37--- 38name: copy_a64_to_v64 39tracksRegLiveness: true 40body: | 41 bb.0: 42 liveins: $agpr2_agpr3 43 ; GFX908-LABEL: name: copy_a64_to_v64 44 ; GFX908: liveins: $agpr2_agpr3 45 ; GFX908: $vgpr0 = V_ACCVGPR_READ_B32_e64 $agpr2, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $agpr2_agpr3 46 ; GFX908: $vgpr1 = V_ACCVGPR_READ_B32_e64 $agpr3, implicit $exec, implicit killed $agpr2_agpr3, implicit $exec 47 ; GFX90A-LABEL: name: copy_a64_to_v64 48 ; GFX90A: liveins: $agpr2_agpr3 49 ; GFX90A: $vgpr0 = V_ACCVGPR_READ_B32_e64 $agpr2, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $agpr2_agpr3 50 ; GFX90A: $vgpr1 = V_ACCVGPR_READ_B32_e64 $agpr3, implicit $exec, implicit killed $agpr2_agpr3, implicit $exec 51 $vgpr0_vgpr1 = COPY killed $agpr2_agpr3, implicit $exec 52... 53 54--- 55name: copy_v128_to_v128_fwd 56tracksRegLiveness: true 57body: | 58 bb.0: 59 liveins: $vgpr2_vgpr3_vgpr4_vgpr5 60 ; GFX908-LABEL: name: copy_v128_to_v128_fwd 61 ; GFX908: liveins: $vgpr2_vgpr3_vgpr4_vgpr5 62 ; GFX908: $vgpr0 = V_MOV_B32_e32 $vgpr2, implicit $exec, implicit-def $vgpr0_vgpr1_vgpr2_vgpr3, implicit $vgpr2_vgpr3_vgpr4_vgpr5 63 ; GFX908: $vgpr1 = V_MOV_B32_e32 $vgpr3, implicit $exec, implicit $vgpr2_vgpr3_vgpr4_vgpr5 64 ; GFX908: $vgpr2 = V_MOV_B32_e32 $vgpr4, implicit $exec, implicit $vgpr2_vgpr3_vgpr4_vgpr5 65 ; GFX908: $vgpr3 = V_MOV_B32_e32 $vgpr5, implicit $exec, implicit $vgpr2_vgpr3_vgpr4_vgpr5, implicit $exec 66 ; GFX90A-LABEL: name: copy_v128_to_v128_fwd 67 ; GFX90A: liveins: $vgpr2_vgpr3_vgpr4_vgpr5 68 ; GFX90A: $vgpr0_vgpr1 = V_PK_MOV_B32 8, $vgpr2_vgpr3, 12, $vgpr2_vgpr3, 0, 0, 0, 0, 0, implicit $exec, implicit $vgpr2_vgpr3_vgpr4_vgpr5, implicit-def $vgpr0_vgpr1_vgpr2_vgpr3 69 ; GFX90A: $vgpr2_vgpr3 = V_PK_MOV_B32 8, $vgpr4_vgpr5, 12, $vgpr4_vgpr5, 0, 0, 0, 0, 0, implicit $exec, implicit $vgpr2_vgpr3_vgpr4_vgpr5, implicit $exec 70 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY killed $vgpr2_vgpr3_vgpr4_vgpr5, implicit $exec 71... 72 73--- 74name: copy_v128_to_v128_back 75tracksRegLiveness: true 76body: | 77 bb.0: 78 liveins: $vgpr0_vgpr1_vgpr2_vgpr3 79 ; GFX908-LABEL: name: copy_v128_to_v128_back 80 ; GFX908: liveins: $vgpr0_vgpr1_vgpr2_vgpr3 81 ; GFX908: $vgpr5 = V_MOV_B32_e32 $vgpr3, implicit $exec, implicit-def $vgpr2_vgpr3_vgpr4_vgpr5, implicit $vgpr0_vgpr1_vgpr2_vgpr3 82 ; GFX908: $vgpr4 = V_MOV_B32_e32 $vgpr2, implicit $exec, implicit $vgpr0_vgpr1_vgpr2_vgpr3 83 ; GFX908: $vgpr3 = V_MOV_B32_e32 $vgpr1, implicit $exec, implicit $vgpr0_vgpr1_vgpr2_vgpr3 84 ; GFX908: $vgpr2 = V_MOV_B32_e32 $vgpr0, implicit $exec, implicit $vgpr0_vgpr1_vgpr2_vgpr3, implicit $exec 85 ; GFX90A-LABEL: name: copy_v128_to_v128_back 86 ; GFX90A: liveins: $vgpr0_vgpr1_vgpr2_vgpr3 87 ; GFX90A: $vgpr4_vgpr5 = V_PK_MOV_B32 8, $vgpr2_vgpr3, 12, $vgpr2_vgpr3, 0, 0, 0, 0, 0, implicit $exec, implicit $vgpr0_vgpr1_vgpr2_vgpr3, implicit-def $vgpr2_vgpr3_vgpr4_vgpr5 88 ; GFX90A: $vgpr2_vgpr3 = V_PK_MOV_B32 8, $vgpr0_vgpr1, 12, $vgpr0_vgpr1, 0, 0, 0, 0, 0, implicit $exec, implicit $vgpr0_vgpr1_vgpr2_vgpr3, implicit $exec 89 $vgpr2_vgpr3_vgpr4_vgpr5 = COPY killed $vgpr0_vgpr1_vgpr2_vgpr3, implicit $exec 90... 91 92--- 93name: copy_v96_to_v96 94tracksRegLiveness: true 95body: | 96 bb.0: 97 liveins: $vgpr4_vgpr5_vgpr6 98 ; GFX908-LABEL: name: copy_v96_to_v96 99 ; GFX908: liveins: $vgpr4_vgpr5_vgpr6 100 ; GFX908: $vgpr0 = V_MOV_B32_e32 $vgpr4, implicit $exec, implicit-def $vgpr0_vgpr1_vgpr2, implicit $vgpr4_vgpr5_vgpr6 101 ; GFX908: $vgpr1 = V_MOV_B32_e32 $vgpr5, implicit $exec, implicit $vgpr4_vgpr5_vgpr6 102 ; GFX908: $vgpr2 = V_MOV_B32_e32 $vgpr6, implicit $exec, implicit killed $vgpr4_vgpr5_vgpr6, implicit $exec 103 ; GFX90A-LABEL: name: copy_v96_to_v96 104 ; GFX90A: liveins: $vgpr4_vgpr5_vgpr6 105 ; GFX90A: $vgpr0 = V_MOV_B32_e32 $vgpr4, implicit $exec, implicit-def $vgpr0_vgpr1_vgpr2, implicit $vgpr4_vgpr5_vgpr6 106 ; GFX90A: $vgpr1 = V_MOV_B32_e32 $vgpr5, implicit $exec, implicit $vgpr4_vgpr5_vgpr6 107 ; GFX90A: $vgpr2 = V_MOV_B32_e32 $vgpr6, implicit $exec, implicit killed $vgpr4_vgpr5_vgpr6, implicit $exec 108 $vgpr0_vgpr1_vgpr2 = COPY killed $vgpr4_vgpr5_vgpr6, implicit $exec 109... 110 111--- 112name: copy_v64_to_v64_undef_sub0 113tracksRegLiveness: true 114body: | 115 bb.0: 116 liveins: $vgpr3 117 ; GFX908-LABEL: name: copy_v64_to_v64_undef_sub0 118 ; GFX908: liveins: $vgpr3 119 ; GFX908: $vgpr0 = V_MOV_B32_e32 $vgpr2, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $vgpr2_vgpr3 120 ; GFX908: $vgpr1 = V_MOV_B32_e32 $vgpr3, implicit $exec, implicit killed $vgpr2_vgpr3, implicit $exec 121 ; GFX90A-LABEL: name: copy_v64_to_v64_undef_sub0 122 ; GFX90A: liveins: $vgpr3 123 ; GFX90A: $vgpr0_vgpr1 = V_PK_MOV_B32 8, $vgpr2_vgpr3, 12, $vgpr2_vgpr3, 0, 0, 0, 0, 0, implicit $exec, implicit killed $vgpr2_vgpr3, implicit $exec 124 $vgpr0_vgpr1 = COPY killed $vgpr2_vgpr3, implicit $exec 125... 126 127--- 128name: copy_v64_to_v64_undef_sub1 129tracksRegLiveness: true 130body: | 131 bb.0: 132 liveins: $vgpr2 133 ; GFX908-LABEL: name: copy_v64_to_v64_undef_sub1 134 ; GFX908: liveins: $vgpr2 135 ; GFX908: $vgpr0 = V_MOV_B32_e32 $vgpr2, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $vgpr2_vgpr3 136 ; GFX908: $vgpr1 = V_MOV_B32_e32 $vgpr3, implicit $exec, implicit killed $vgpr2_vgpr3, implicit $exec 137 ; GFX90A-LABEL: name: copy_v64_to_v64_undef_sub1 138 ; GFX90A: liveins: $vgpr2 139 ; GFX90A: $vgpr0_vgpr1 = V_PK_MOV_B32 8, $vgpr2_vgpr3, 12, $vgpr2_vgpr3, 0, 0, 0, 0, 0, implicit $exec, implicit killed $vgpr2_vgpr3, implicit $exec 140 $vgpr0_vgpr1 = COPY killed $vgpr2_vgpr3, implicit $exec 141... 142 143--- 144name: copy_s128_to_v128_killed 145tracksRegLiveness: true 146body: | 147 bb.0: 148 liveins: $sgpr4_sgpr5_sgpr6_sgpr7 149 ; GFX908-LABEL: name: copy_s128_to_v128_killed 150 ; GFX908: liveins: $sgpr4_sgpr5_sgpr6_sgpr7 151 ; GFX908: $vgpr0 = V_MOV_B32_e32 $sgpr4, implicit $exec, implicit-def $vgpr0_vgpr1_vgpr2_vgpr3, implicit $sgpr4_sgpr5_sgpr6_sgpr7 152 ; GFX908: $vgpr1 = V_MOV_B32_e32 $sgpr5, implicit $exec, implicit $sgpr4_sgpr5_sgpr6_sgpr7 153 ; GFX908: $vgpr2 = V_MOV_B32_e32 $sgpr6, implicit $exec, implicit $sgpr4_sgpr5_sgpr6_sgpr7 154 ; GFX908: $vgpr3 = V_MOV_B32_e32 $sgpr7, implicit $exec, implicit killed $sgpr4_sgpr5_sgpr6_sgpr7 155 ; GFX90A-LABEL: name: copy_s128_to_v128_killed 156 ; GFX90A: liveins: $sgpr4_sgpr5_sgpr6_sgpr7 157 ; GFX90A: $vgpr0_vgpr1 = V_PK_MOV_B32 8, $sgpr4_sgpr5, 12, $sgpr4_sgpr5, 0, 0, 0, 0, 0, implicit $exec, implicit $sgpr4_sgpr5_sgpr6_sgpr7, implicit-def $vgpr0_vgpr1_vgpr2_vgpr3 158 ; GFX90A: $vgpr2_vgpr3 = V_PK_MOV_B32 8, $sgpr6_sgpr7, 12, $sgpr6_sgpr7, 0, 0, 0, 0, 0, implicit $exec, implicit killed $sgpr4_sgpr5_sgpr6_sgpr7 159 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY killed $sgpr4_sgpr5_sgpr6_sgpr7 160... 161 162--- 163name: copy_v64_to_v64_unaligned 164tracksRegLiveness: true 165body: | 166 bb.0: 167 liveins: $vgpr2_vgpr3 168 ; GFX908-LABEL: name: copy_v64_to_v64_unaligned 169 ; GFX908: liveins: $vgpr2_vgpr3 170 ; GFX908: $vgpr1 = V_MOV_B32_e32 $vgpr2, implicit $exec, implicit-def $vgpr1_vgpr2, implicit $vgpr2_vgpr3 171 ; GFX908: $vgpr2 = V_MOV_B32_e32 $vgpr3, implicit $exec, implicit $vgpr2_vgpr3, implicit $exec 172 ; GFX90A-LABEL: name: copy_v64_to_v64_unaligned 173 ; GFX90A: liveins: $vgpr2_vgpr3 174 ; GFX90A: $vgpr1 = V_MOV_B32_e32 $vgpr2, implicit $exec, implicit-def $vgpr1_vgpr2, implicit $vgpr2_vgpr3 175 ; GFX90A: $vgpr2 = V_MOV_B32_e32 $vgpr3, implicit $exec, implicit $vgpr2_vgpr3, implicit $exec 176 $vgpr1_vgpr2 = COPY killed $vgpr2_vgpr3, implicit $exec 177... 178 179--- 180name: copy_v64_unaligned_to_v64 181tracksRegLiveness: true 182body: | 183 bb.0: 184 liveins: $vgpr3_vgpr4 185 ; GFX908-LABEL: name: copy_v64_unaligned_to_v64 186 ; GFX908: liveins: $vgpr3_vgpr4 187 ; GFX908: $vgpr0 = V_MOV_B32_e32 $vgpr3, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $vgpr3_vgpr4 188 ; GFX908: $vgpr1 = V_MOV_B32_e32 $vgpr4, implicit $exec, implicit killed $vgpr3_vgpr4, implicit $exec 189 ; GFX90A-LABEL: name: copy_v64_unaligned_to_v64 190 ; GFX90A: liveins: $vgpr3_vgpr4 191 ; GFX90A: $vgpr0 = V_MOV_B32_e32 $vgpr3, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $vgpr3_vgpr4 192 ; GFX90A: $vgpr1 = V_MOV_B32_e32 $vgpr4, implicit $exec, implicit killed $vgpr3_vgpr4, implicit $exec 193 $vgpr0_vgpr1 = COPY killed $vgpr3_vgpr4, implicit $exec 194... 195 196--- 197name: copy_v128_to_v128_unaligned 198tracksRegLiveness: true 199body: | 200 bb.0: 201 liveins: $vgpr8_vgpr9_vgpr10_vgpr11 202 ; GFX908-LABEL: name: copy_v128_to_v128_unaligned 203 ; GFX908: liveins: $vgpr8_vgpr9_vgpr10_vgpr11 204 ; GFX908: $vgpr1 = V_MOV_B32_e32 $vgpr8, implicit $exec, implicit-def $vgpr1_vgpr2_vgpr3_vgpr4, implicit $vgpr8_vgpr9_vgpr10_vgpr11 205 ; GFX908: $vgpr2 = V_MOV_B32_e32 $vgpr9, implicit $exec, implicit $vgpr8_vgpr9_vgpr10_vgpr11 206 ; GFX908: $vgpr3 = V_MOV_B32_e32 $vgpr10, implicit $exec, implicit $vgpr8_vgpr9_vgpr10_vgpr11 207 ; GFX908: $vgpr4 = V_MOV_B32_e32 $vgpr11, implicit $exec, implicit killed $vgpr8_vgpr9_vgpr10_vgpr11, implicit $exec 208 ; GFX90A-LABEL: name: copy_v128_to_v128_unaligned 209 ; GFX90A: liveins: $vgpr8_vgpr9_vgpr10_vgpr11 210 ; GFX90A: $vgpr1 = V_MOV_B32_e32 $vgpr8, implicit $exec, implicit-def $vgpr1_vgpr2_vgpr3_vgpr4, implicit $vgpr8_vgpr9_vgpr10_vgpr11 211 ; GFX90A: $vgpr2 = V_MOV_B32_e32 $vgpr9, implicit $exec, implicit $vgpr8_vgpr9_vgpr10_vgpr11 212 ; GFX90A: $vgpr3 = V_MOV_B32_e32 $vgpr10, implicit $exec, implicit $vgpr8_vgpr9_vgpr10_vgpr11 213 ; GFX90A: $vgpr4 = V_MOV_B32_e32 $vgpr11, implicit $exec, implicit killed $vgpr8_vgpr9_vgpr10_vgpr11, implicit $exec 214 $vgpr1_vgpr2_vgpr3_vgpr4 = COPY killed $vgpr8_vgpr9_vgpr10_vgpr11, implicit $exec 215... 216 217--- 218name: copy_v128_unaligned_to_v128 219tracksRegLiveness: true 220body: | 221 bb.0: 222 liveins: $vgpr7_vgpr8_vgpr9_vgpr10 223 ; GFX908-LABEL: name: copy_v128_unaligned_to_v128 224 ; GFX908: liveins: $vgpr7_vgpr8_vgpr9_vgpr10 225 ; GFX908: $vgpr0 = V_MOV_B32_e32 $vgpr7, implicit $exec, implicit-def $vgpr0_vgpr1_vgpr2_vgpr3, implicit $vgpr7_vgpr8_vgpr9_vgpr10 226 ; GFX908: $vgpr1 = V_MOV_B32_e32 $vgpr8, implicit $exec, implicit $vgpr7_vgpr8_vgpr9_vgpr10 227 ; GFX908: $vgpr2 = V_MOV_B32_e32 $vgpr9, implicit $exec, implicit $vgpr7_vgpr8_vgpr9_vgpr10 228 ; GFX908: $vgpr3 = V_MOV_B32_e32 $vgpr10, implicit $exec, implicit killed $vgpr7_vgpr8_vgpr9_vgpr10, implicit $exec 229 ; GFX90A-LABEL: name: copy_v128_unaligned_to_v128 230 ; GFX90A: liveins: $vgpr7_vgpr8_vgpr9_vgpr10 231 ; GFX90A: $vgpr0 = V_MOV_B32_e32 $vgpr7, implicit $exec, implicit-def $vgpr0_vgpr1_vgpr2_vgpr3, implicit $vgpr7_vgpr8_vgpr9_vgpr10 232 ; GFX90A: $vgpr1 = V_MOV_B32_e32 $vgpr8, implicit $exec, implicit $vgpr7_vgpr8_vgpr9_vgpr10 233 ; GFX90A: $vgpr2 = V_MOV_B32_e32 $vgpr9, implicit $exec, implicit $vgpr7_vgpr8_vgpr9_vgpr10 234 ; GFX90A: $vgpr3 = V_MOV_B32_e32 $vgpr10, implicit $exec, implicit killed $vgpr7_vgpr8_vgpr9_vgpr10, implicit $exec 235 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY killed $vgpr7_vgpr8_vgpr9_vgpr10, implicit $exec 236... 237 238--- 239name: copy_s64_to_v64_unaligned 240tracksRegLiveness: true 241body: | 242 bb.0: 243 liveins: $sgpr8_sgpr9 244 ; GFX908-LABEL: name: copy_s64_to_v64_unaligned 245 ; GFX908: liveins: $sgpr8_sgpr9 246 ; GFX908: $vgpr1 = V_MOV_B32_e32 $sgpr8, implicit $exec, implicit-def $vgpr1_vgpr2, implicit $sgpr8_sgpr9 247 ; GFX908: $vgpr2 = V_MOV_B32_e32 $sgpr9, implicit $exec, implicit killed $sgpr8_sgpr9, implicit $exec 248 ; GFX90A-LABEL: name: copy_s64_to_v64_unaligned 249 ; GFX90A: liveins: $sgpr8_sgpr9 250 ; GFX90A: $vgpr1 = V_MOV_B32_e32 $sgpr8, implicit $exec, implicit-def $vgpr1_vgpr2, implicit $sgpr8_sgpr9 251 ; GFX90A: $vgpr2 = V_MOV_B32_e32 $sgpr9, implicit $exec, implicit killed $sgpr8_sgpr9, implicit $exec 252 $vgpr1_vgpr2 = COPY killed $sgpr8_sgpr9, implicit $exec 253... 254 255--- 256name: copy_s128_to_v128_unaligned 257tracksRegLiveness: true 258body: | 259 bb.0: 260 liveins: $sgpr8_sgpr9_sgpr10_sgpr11 261 ; GFX908-LABEL: name: copy_s128_to_v128_unaligned 262 ; GFX908: liveins: $sgpr8_sgpr9_sgpr10_sgpr11 263 ; GFX908: $vgpr1 = V_MOV_B32_e32 $sgpr8, implicit $exec, implicit-def $vgpr1_vgpr2_vgpr3_vgpr4, implicit $sgpr8_sgpr9_sgpr10_sgpr11 264 ; GFX908: $vgpr2 = V_MOV_B32_e32 $sgpr9, implicit $exec, implicit $sgpr8_sgpr9_sgpr10_sgpr11 265 ; GFX908: $vgpr3 = V_MOV_B32_e32 $sgpr10, implicit $exec, implicit $sgpr8_sgpr9_sgpr10_sgpr11 266 ; GFX908: $vgpr4 = V_MOV_B32_e32 $sgpr11, implicit $exec, implicit killed $sgpr8_sgpr9_sgpr10_sgpr11, implicit $exec 267 ; GFX90A-LABEL: name: copy_s128_to_v128_unaligned 268 ; GFX90A: liveins: $sgpr8_sgpr9_sgpr10_sgpr11 269 ; GFX90A: $vgpr1 = V_MOV_B32_e32 $sgpr8, implicit $exec, implicit-def $vgpr1_vgpr2_vgpr3_vgpr4, implicit $sgpr8_sgpr9_sgpr10_sgpr11 270 ; GFX90A: $vgpr2 = V_MOV_B32_e32 $sgpr9, implicit $exec, implicit $sgpr8_sgpr9_sgpr10_sgpr11 271 ; GFX90A: $vgpr3 = V_MOV_B32_e32 $sgpr10, implicit $exec, implicit $sgpr8_sgpr9_sgpr10_sgpr11 272 ; GFX90A: $vgpr4 = V_MOV_B32_e32 $sgpr11, implicit $exec, implicit killed $sgpr8_sgpr9_sgpr10_sgpr11, implicit $exec 273 $vgpr1_vgpr2_vgpr3_vgpr4 = COPY killed $sgpr8_sgpr9_sgpr10_sgpr11, implicit $exec 274... 275 276--- 277name: copy_v96_to_v96_unaligned 278tracksRegLiveness: true 279body: | 280 bb.0: 281 liveins: $vgpr8_vgpr9_vgpr10 282 ; GFX908-LABEL: name: copy_v96_to_v96_unaligned 283 ; GFX908: liveins: $vgpr8_vgpr9_vgpr10 284 ; GFX908: $vgpr1 = V_MOV_B32_e32 $vgpr8, implicit $exec, implicit-def $vgpr1_vgpr2_vgpr3, implicit $vgpr8_vgpr9_vgpr10 285 ; GFX908: $vgpr2 = V_MOV_B32_e32 $vgpr9, implicit $exec, implicit $vgpr8_vgpr9_vgpr10 286 ; GFX908: $vgpr3 = V_MOV_B32_e32 $vgpr10, implicit $exec, implicit killed $vgpr8_vgpr9_vgpr10, implicit $exec 287 ; GFX90A-LABEL: name: copy_v96_to_v96_unaligned 288 ; GFX90A: liveins: $vgpr8_vgpr9_vgpr10 289 ; GFX90A: $vgpr1 = V_MOV_B32_e32 $vgpr8, implicit $exec, implicit-def $vgpr1_vgpr2_vgpr3, implicit $vgpr8_vgpr9_vgpr10 290 ; GFX90A: $vgpr2 = V_MOV_B32_e32 $vgpr9, implicit $exec, implicit $vgpr8_vgpr9_vgpr10 291 ; GFX90A: $vgpr3 = V_MOV_B32_e32 $vgpr10, implicit $exec, implicit killed $vgpr8_vgpr9_vgpr10, implicit $exec 292 $vgpr1_vgpr2_vgpr3 = COPY killed $vgpr8_vgpr9_vgpr10, implicit $exec 293... 294 295--- 296name: copy_v96_unaligned_to_v96 297tracksRegLiveness: true 298body: | 299 bb.0: 300 liveins: $vgpr7_vgpr8_vgpr9 301 ; GFX908-LABEL: name: copy_v96_unaligned_to_v96 302 ; GFX908: liveins: $vgpr7_vgpr8_vgpr9 303 ; GFX908: $vgpr0 = V_MOV_B32_e32 $vgpr7, implicit $exec, implicit-def $vgpr0_vgpr1_vgpr2, implicit $vgpr7_vgpr8_vgpr9 304 ; GFX908: $vgpr1 = V_MOV_B32_e32 $vgpr8, implicit $exec, implicit $vgpr7_vgpr8_vgpr9 305 ; GFX908: $vgpr2 = V_MOV_B32_e32 $vgpr9, implicit $exec, implicit killed $vgpr7_vgpr8_vgpr9, implicit $exec 306 ; GFX90A-LABEL: name: copy_v96_unaligned_to_v96 307 ; GFX90A: liveins: $vgpr7_vgpr8_vgpr9 308 ; GFX90A: $vgpr0 = V_MOV_B32_e32 $vgpr7, implicit $exec, implicit-def $vgpr0_vgpr1_vgpr2, implicit $vgpr7_vgpr8_vgpr9 309 ; GFX90A: $vgpr1 = V_MOV_B32_e32 $vgpr8, implicit $exec, implicit $vgpr7_vgpr8_vgpr9 310 ; GFX90A: $vgpr2 = V_MOV_B32_e32 $vgpr9, implicit $exec, implicit killed $vgpr7_vgpr8_vgpr9, implicit $exec 311 $vgpr0_vgpr1_vgpr2 = COPY killed $vgpr7_vgpr8_vgpr9, implicit $exec 312... 313 314--- 315name: copy_s96_to_v96 316tracksRegLiveness: true 317body: | 318 bb.0: 319 liveins: $sgpr0_sgpr1_sgpr2 320 ; GFX908-LABEL: name: copy_s96_to_v96 321 ; GFX908: liveins: $sgpr0_sgpr1_sgpr2 322 ; GFX908: $vgpr0 = V_MOV_B32_e32 $sgpr0, implicit $exec, implicit-def $vgpr0_vgpr1_vgpr2, implicit $sgpr0_sgpr1_sgpr2 323 ; GFX908: $vgpr1 = V_MOV_B32_e32 $sgpr1, implicit $exec, implicit $sgpr0_sgpr1_sgpr2 324 ; GFX908: $vgpr2 = V_MOV_B32_e32 $sgpr2, implicit $exec, implicit killed $sgpr0_sgpr1_sgpr2, implicit $exec 325 ; GFX90A-LABEL: name: copy_s96_to_v96 326 ; GFX90A: liveins: $sgpr0_sgpr1_sgpr2 327 ; GFX90A: $vgpr0 = V_MOV_B32_e32 $sgpr0, implicit $exec, implicit-def $vgpr0_vgpr1_vgpr2, implicit $sgpr0_sgpr1_sgpr2 328 ; GFX90A: $vgpr1 = V_MOV_B32_e32 $sgpr1, implicit $exec, implicit $sgpr0_sgpr1_sgpr2 329 ; GFX90A: $vgpr2 = V_MOV_B32_e32 $sgpr2, implicit $exec, implicit killed $sgpr0_sgpr1_sgpr2, implicit $exec 330 $vgpr0_vgpr1_vgpr2 = COPY killed $sgpr0_sgpr1_sgpr2, implicit $exec 331... 332 333--- 334name: copy_s96_to_v96_unaligned 335tracksRegLiveness: true 336body: | 337 bb.0: 338 liveins: $sgpr0_sgpr1_sgpr2 339 ; GFX908-LABEL: name: copy_s96_to_v96_unaligned 340 ; GFX908: liveins: $sgpr0_sgpr1_sgpr2 341 ; GFX908: $vgpr3 = V_MOV_B32_e32 $sgpr2, implicit $exec, implicit-def $vgpr1_vgpr2_vgpr3, implicit $sgpr0_sgpr1_sgpr2 342 ; GFX908: $vgpr2 = V_MOV_B32_e32 $sgpr1, implicit $exec, implicit $sgpr0_sgpr1_sgpr2 343 ; GFX908: $vgpr1 = V_MOV_B32_e32 $sgpr0, implicit $exec, implicit killed $sgpr0_sgpr1_sgpr2, implicit $exec 344 ; GFX90A-LABEL: name: copy_s96_to_v96_unaligned 345 ; GFX90A: liveins: $sgpr0_sgpr1_sgpr2 346 ; GFX90A: $vgpr3 = V_MOV_B32_e32 $sgpr2, implicit $exec, implicit-def $vgpr1_vgpr2_vgpr3, implicit $sgpr0_sgpr1_sgpr2 347 ; GFX90A: $vgpr2 = V_MOV_B32_e32 $sgpr1, implicit $exec, implicit $sgpr0_sgpr1_sgpr2 348 ; GFX90A: $vgpr1 = V_MOV_B32_e32 $sgpr0, implicit $exec, implicit killed $sgpr0_sgpr1_sgpr2, implicit $exec 349 $vgpr1_vgpr2_vgpr3 = COPY killed $sgpr0_sgpr1_sgpr2, implicit $exec 350... 351