brintos

brintos / llvm-project-archived public Read only

0
0
Text · 71.9 KiB · 8c223a9 Raw
1193 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 22; RUN: llc -mtriple=amdgcn -mcpu=gfx908 -stop-after=si-fix-sgpr-copies < %s | FileCheck -check-prefix=GFX908 %s3 4;; Older intrinsics that take <4 x i32>5 6define float @llvm_amdgcn_raw_buffer_load_f32(i32 %voffset, i32 %soffset) {7  ; GFX908-LABEL: name: llvm_amdgcn_raw_buffer_load_f328  ; GFX908: bb.0 (%ir-block.0):9  ; GFX908-NEXT:   successors: %bb.1(0x80000000)10  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr111  ; GFX908-NEXT: {{  $}}12  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr113  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr014  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF15  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec16  ; GFX908-NEXT: {{  $}}17  ; GFX908-NEXT: bb.1:18  ; GFX908-NEXT:   successors: %bb.2(0x80000000)19  ; GFX908-NEXT: {{  $}}20  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec21  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec22  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec23  ; GFX908-NEXT: {{  $}}24  ; GFX908-NEXT: bb.2:25  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)26  ; GFX908-NEXT: {{  $}}27  ; GFX908-NEXT:   [[BUFFER_LOAD_DWORD_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_DWORD_OFFEN [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 8)28  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc29  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec30  ; GFX908-NEXT: {{  $}}31  ; GFX908-NEXT: bb.3:32  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]33  ; GFX908-NEXT:   $vgpr0 = COPY [[BUFFER_LOAD_DWORD_OFFEN]]34  ; GFX908-NEXT:   SI_RETURN implicit $vgpr035  %val = call float @llvm.amdgcn.raw.buffer.load.f32(<4 x i32> poison, i32 %voffset, i32 %soffset, i32 0)36  ret float %val37}38 39define float @llvm_amdgcn_raw_tbuffer_load_f32(i32 %voffset, i32 %soffset) {40  ; GFX908-LABEL: name: llvm_amdgcn_raw_tbuffer_load_f3241  ; GFX908: bb.0 (%ir-block.0):42  ; GFX908-NEXT:   successors: %bb.1(0x80000000)43  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr144  ; GFX908-NEXT: {{  $}}45  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr146  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr047  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF48  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec49  ; GFX908-NEXT: {{  $}}50  ; GFX908-NEXT: bb.1:51  ; GFX908-NEXT:   successors: %bb.2(0x80000000)52  ; GFX908-NEXT: {{  $}}53  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec54  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec55  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec56  ; GFX908-NEXT: {{  $}}57  ; GFX908-NEXT: bb.2:58  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)59  ; GFX908-NEXT: {{  $}}60  ; GFX908-NEXT:   [[TBUFFER_LOAD_FORMAT_X_OFFEN:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFEN [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 8)61  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc62  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec63  ; GFX908-NEXT: {{  $}}64  ; GFX908-NEXT: bb.3:65  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]66  ; GFX908-NEXT:   $vgpr0 = COPY [[TBUFFER_LOAD_FORMAT_X_OFFEN]]67  ; GFX908-NEXT:   SI_RETURN implicit $vgpr068  %val = call float @llvm.amdgcn.raw.tbuffer.load.f32(<4 x i32> poison, i32 %voffset, i32 %soffset, i32 0, i32 0)69  ret float %val70}71 72define <2 x float> @llvm_amdgcn_raw_buffer_load_v2f32(i32 %voffset, i32 %soffset) {73  ; GFX908-LABEL: name: llvm_amdgcn_raw_buffer_load_v2f3274  ; GFX908: bb.0 (%ir-block.0):75  ; GFX908-NEXT:   successors: %bb.1(0x80000000)76  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr177  ; GFX908-NEXT: {{  $}}78  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr179  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr080  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF81  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec82  ; GFX908-NEXT: {{  $}}83  ; GFX908-NEXT: bb.1:84  ; GFX908-NEXT:   successors: %bb.2(0x80000000)85  ; GFX908-NEXT: {{  $}}86  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec87  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec88  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec89  ; GFX908-NEXT: {{  $}}90  ; GFX908-NEXT: bb.2:91  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)92  ; GFX908-NEXT: {{  $}}93  ; GFX908-NEXT:   [[BUFFER_LOAD_DWORDX2_OFFEN:%[0-9]+]]:vreg_64 = BUFFER_LOAD_DWORDX2_OFFEN [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 8)94  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc95  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec96  ; GFX908-NEXT: {{  $}}97  ; GFX908-NEXT: bb.3:98  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]99  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY [[BUFFER_LOAD_DWORDX2_OFFEN]].sub0100  ; GFX908-NEXT:   [[COPY3:%[0-9]+]]:vgpr_32 = COPY [[BUFFER_LOAD_DWORDX2_OFFEN]].sub1101  ; GFX908-NEXT:   $vgpr0 = COPY [[COPY2]]102  ; GFX908-NEXT:   $vgpr1 = COPY [[COPY3]]103  ; GFX908-NEXT:   SI_RETURN implicit $vgpr0, implicit $vgpr1104  %val = call <2 x float> @llvm.amdgcn.raw.buffer.load.v2f32(<4 x i32> poison, i32 %voffset, i32 %soffset, i32 0)105  ret <2 x float> %val106}107 108define <2 x float> @llvm_amdgcn_raw_tbuffer_load_v2f32(i32 %voffset, i32 %soffset) {109  ; GFX908-LABEL: name: llvm_amdgcn_raw_tbuffer_load_v2f32110  ; GFX908: bb.0 (%ir-block.0):111  ; GFX908-NEXT:   successors: %bb.1(0x80000000)112  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1113  ; GFX908-NEXT: {{  $}}114  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr1115  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0116  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF117  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec118  ; GFX908-NEXT: {{  $}}119  ; GFX908-NEXT: bb.1:120  ; GFX908-NEXT:   successors: %bb.2(0x80000000)121  ; GFX908-NEXT: {{  $}}122  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec123  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec124  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec125  ; GFX908-NEXT: {{  $}}126  ; GFX908-NEXT: bb.2:127  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)128  ; GFX908-NEXT: {{  $}}129  ; GFX908-NEXT:   [[TBUFFER_LOAD_FORMAT_XY_OFFEN:%[0-9]+]]:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFEN [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 8)130  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc131  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec132  ; GFX908-NEXT: {{  $}}133  ; GFX908-NEXT: bb.3:134  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]135  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XY_OFFEN]].sub0136  ; GFX908-NEXT:   [[COPY3:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XY_OFFEN]].sub1137  ; GFX908-NEXT:   $vgpr0 = COPY [[COPY2]]138  ; GFX908-NEXT:   $vgpr1 = COPY [[COPY3]]139  ; GFX908-NEXT:   SI_RETURN implicit $vgpr0, implicit $vgpr1140  %val = call <2 x float> @llvm.amdgcn.raw.tbuffer.load.v2f32(<4 x i32> poison, i32 %voffset, i32 %soffset, i32 0, i32 0)141  ret <2 x float> %val142}143 144define <3 x float> @llvm_amdgcn_raw_buffer_load_v3f32(i32 %voffset, i32 %soffset) {145  ; GFX908-LABEL: name: llvm_amdgcn_raw_buffer_load_v3f32146  ; GFX908: bb.0 (%ir-block.0):147  ; GFX908-NEXT:   successors: %bb.1(0x80000000)148  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1149  ; GFX908-NEXT: {{  $}}150  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr1151  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0152  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF153  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec154  ; GFX908-NEXT: {{  $}}155  ; GFX908-NEXT: bb.1:156  ; GFX908-NEXT:   successors: %bb.2(0x80000000)157  ; GFX908-NEXT: {{  $}}158  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec159  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec160  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec161  ; GFX908-NEXT: {{  $}}162  ; GFX908-NEXT: bb.2:163  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)164  ; GFX908-NEXT: {{  $}}165  ; GFX908-NEXT:   [[BUFFER_LOAD_DWORDX3_OFFEN:%[0-9]+]]:vreg_96 = BUFFER_LOAD_DWORDX3_OFFEN [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 8)166  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc167  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec168  ; GFX908-NEXT: {{  $}}169  ; GFX908-NEXT: bb.3:170  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]171  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY [[BUFFER_LOAD_DWORDX3_OFFEN]].sub0172  ; GFX908-NEXT:   [[COPY3:%[0-9]+]]:vgpr_32 = COPY [[BUFFER_LOAD_DWORDX3_OFFEN]].sub1173  ; GFX908-NEXT:   [[COPY4:%[0-9]+]]:vgpr_32 = COPY [[BUFFER_LOAD_DWORDX3_OFFEN]].sub2174  ; GFX908-NEXT:   $vgpr0 = COPY [[COPY2]]175  ; GFX908-NEXT:   $vgpr1 = COPY [[COPY3]]176  ; GFX908-NEXT:   $vgpr2 = COPY [[COPY4]]177  ; GFX908-NEXT:   SI_RETURN implicit $vgpr0, implicit $vgpr1, implicit $vgpr2178  %val = call <3 x float> @llvm.amdgcn.raw.buffer.load.v3f32(<4 x i32> poison, i32 %voffset, i32 %soffset, i32 0)179  ret <3 x float> %val180}181 182define <3 x float> @llvm_amdgcn_raw_tbuffer_load_v3f32(i32 %voffset, i32 %soffset) {183  ; GFX908-LABEL: name: llvm_amdgcn_raw_tbuffer_load_v3f32184  ; GFX908: bb.0 (%ir-block.0):185  ; GFX908-NEXT:   successors: %bb.1(0x80000000)186  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1187  ; GFX908-NEXT: {{  $}}188  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr1189  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0190  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF191  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec192  ; GFX908-NEXT: {{  $}}193  ; GFX908-NEXT: bb.1:194  ; GFX908-NEXT:   successors: %bb.2(0x80000000)195  ; GFX908-NEXT: {{  $}}196  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec197  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec198  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec199  ; GFX908-NEXT: {{  $}}200  ; GFX908-NEXT: bb.2:201  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)202  ; GFX908-NEXT: {{  $}}203  ; GFX908-NEXT:   [[TBUFFER_LOAD_FORMAT_XYZ_OFFEN:%[0-9]+]]:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFEN [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 8)204  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc205  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec206  ; GFX908-NEXT: {{  $}}207  ; GFX908-NEXT: bb.3:208  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]209  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XYZ_OFFEN]].sub0210  ; GFX908-NEXT:   [[COPY3:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XYZ_OFFEN]].sub1211  ; GFX908-NEXT:   [[COPY4:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XYZ_OFFEN]].sub2212  ; GFX908-NEXT:   $vgpr0 = COPY [[COPY2]]213  ; GFX908-NEXT:   $vgpr1 = COPY [[COPY3]]214  ; GFX908-NEXT:   $vgpr2 = COPY [[COPY4]]215  ; GFX908-NEXT:   SI_RETURN implicit $vgpr0, implicit $vgpr1, implicit $vgpr2216  %val = call <3 x float> @llvm.amdgcn.raw.tbuffer.load.v3f32(<4 x i32> poison, i32 %voffset, i32 %soffset, i32 0, i32 0)217  ret <3 x float> %val218}219 220define <4 x float> @llvm_amdgcn_raw_buffer_load_v4f32(i32 %voffset, i32 %soffset) {221  ; GFX908-LABEL: name: llvm_amdgcn_raw_buffer_load_v4f32222  ; GFX908: bb.0 (%ir-block.0):223  ; GFX908-NEXT:   successors: %bb.1(0x80000000)224  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1225  ; GFX908-NEXT: {{  $}}226  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr1227  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0228  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF229  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec230  ; GFX908-NEXT: {{  $}}231  ; GFX908-NEXT: bb.1:232  ; GFX908-NEXT:   successors: %bb.2(0x80000000)233  ; GFX908-NEXT: {{  $}}234  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec235  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec236  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec237  ; GFX908-NEXT: {{  $}}238  ; GFX908-NEXT: bb.2:239  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)240  ; GFX908-NEXT: {{  $}}241  ; GFX908-NEXT:   [[BUFFER_LOAD_DWORDX4_OFFEN:%[0-9]+]]:vreg_128 = BUFFER_LOAD_DWORDX4_OFFEN [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 8)242  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc243  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec244  ; GFX908-NEXT: {{  $}}245  ; GFX908-NEXT: bb.3:246  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]247  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY [[BUFFER_LOAD_DWORDX4_OFFEN]].sub0248  ; GFX908-NEXT:   [[COPY3:%[0-9]+]]:vgpr_32 = COPY [[BUFFER_LOAD_DWORDX4_OFFEN]].sub1249  ; GFX908-NEXT:   [[COPY4:%[0-9]+]]:vgpr_32 = COPY [[BUFFER_LOAD_DWORDX4_OFFEN]].sub2250  ; GFX908-NEXT:   [[COPY5:%[0-9]+]]:vgpr_32 = COPY [[BUFFER_LOAD_DWORDX4_OFFEN]].sub3251  ; GFX908-NEXT:   $vgpr0 = COPY [[COPY2]]252  ; GFX908-NEXT:   $vgpr1 = COPY [[COPY3]]253  ; GFX908-NEXT:   $vgpr2 = COPY [[COPY4]]254  ; GFX908-NEXT:   $vgpr3 = COPY [[COPY5]]255  ; GFX908-NEXT:   SI_RETURN implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3256  %val = call <4 x float> @llvm.amdgcn.raw.buffer.load.v4f32(<4 x i32> poison, i32 %voffset, i32 %soffset, i32 0)257  ret <4 x float> %val258}259 260define <4 x float> @llvm_amdgcn_raw_tbuffer_load_v4f32(i32 %voffset, i32 %soffset) {261  ; GFX908-LABEL: name: llvm_amdgcn_raw_tbuffer_load_v4f32262  ; GFX908: bb.0 (%ir-block.0):263  ; GFX908-NEXT:   successors: %bb.1(0x80000000)264  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1265  ; GFX908-NEXT: {{  $}}266  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr1267  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0268  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF269  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec270  ; GFX908-NEXT: {{  $}}271  ; GFX908-NEXT: bb.1:272  ; GFX908-NEXT:   successors: %bb.2(0x80000000)273  ; GFX908-NEXT: {{  $}}274  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec275  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec276  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec277  ; GFX908-NEXT: {{  $}}278  ; GFX908-NEXT: bb.2:279  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)280  ; GFX908-NEXT: {{  $}}281  ; GFX908-NEXT:   [[TBUFFER_LOAD_FORMAT_XYZW_OFFEN:%[0-9]+]]:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_OFFEN [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 8)282  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc283  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec284  ; GFX908-NEXT: {{  $}}285  ; GFX908-NEXT: bb.3:286  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]287  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XYZW_OFFEN]].sub0288  ; GFX908-NEXT:   [[COPY3:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XYZW_OFFEN]].sub1289  ; GFX908-NEXT:   [[COPY4:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XYZW_OFFEN]].sub2290  ; GFX908-NEXT:   [[COPY5:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XYZW_OFFEN]].sub3291  ; GFX908-NEXT:   $vgpr0 = COPY [[COPY2]]292  ; GFX908-NEXT:   $vgpr1 = COPY [[COPY3]]293  ; GFX908-NEXT:   $vgpr2 = COPY [[COPY4]]294  ; GFX908-NEXT:   $vgpr3 = COPY [[COPY5]]295  ; GFX908-NEXT:   SI_RETURN implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3296  %val = call <4 x float> @llvm.amdgcn.raw.tbuffer.load.v4f32(<4 x i32> poison, i32 %voffset, i32 %soffset, i32 0, i32 0)297  ret <4 x float> %val298}299 300define void @llvm_amdgcn_raw_buffer_store_f32(float %val, i32 %voffset, i32 %soffset) {301  ; GFX908-LABEL: name: llvm_amdgcn_raw_buffer_store_f32302  ; GFX908: bb.0 (%ir-block.0):303  ; GFX908-NEXT:   successors: %bb.1(0x80000000)304  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1, $vgpr2305  ; GFX908-NEXT: {{  $}}306  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr2307  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1308  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr0309  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF310  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec311  ; GFX908-NEXT: {{  $}}312  ; GFX908-NEXT: bb.1:313  ; GFX908-NEXT:   successors: %bb.2(0x80000000)314  ; GFX908-NEXT: {{  $}}315  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec316  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec317  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec318  ; GFX908-NEXT: {{  $}}319  ; GFX908-NEXT: bb.2:320  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)321  ; GFX908-NEXT: {{  $}}322  ; GFX908-NEXT:   BUFFER_STORE_DWORD_OFFEN_exact [[COPY2]], [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 8)323  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc324  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec325  ; GFX908-NEXT: {{  $}}326  ; GFX908-NEXT: bb.3:327  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]328  ; GFX908-NEXT:   SI_RETURN329  call void @llvm.amdgcn.raw.buffer.store.f32(float %val, <4 x i32> poison, i32 %voffset, i32 %soffset, i32 0)330  ret void331}332 333define void @llvm_amdgcn_raw_tbuffer_store_f32(float %val, i32 %voffset, i32 %soffset) {334  ; GFX908-LABEL: name: llvm_amdgcn_raw_tbuffer_store_f32335  ; GFX908: bb.0 (%ir-block.0):336  ; GFX908-NEXT:   successors: %bb.1(0x80000000)337  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1, $vgpr2338  ; GFX908-NEXT: {{  $}}339  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr2340  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1341  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr0342  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF343  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec344  ; GFX908-NEXT: {{  $}}345  ; GFX908-NEXT: bb.1:346  ; GFX908-NEXT:   successors: %bb.2(0x80000000)347  ; GFX908-NEXT: {{  $}}348  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec349  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec350  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec351  ; GFX908-NEXT: {{  $}}352  ; GFX908-NEXT: bb.2:353  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)354  ; GFX908-NEXT: {{  $}}355  ; GFX908-NEXT:   TBUFFER_STORE_FORMAT_X_OFFEN_exact [[COPY2]], [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 8)356  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc357  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec358  ; GFX908-NEXT: {{  $}}359  ; GFX908-NEXT: bb.3:360  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]361  ; GFX908-NEXT:   SI_RETURN362  call void @llvm.amdgcn.raw.tbuffer.store.f32(float %val, <4 x i32> poison, i32 %voffset, i32 %soffset, i32 0, i32 0)363  ret void364}365 366define void @llvm_amdgcn_raw_buffer_store_v2f32(<2 x float> %val, i32 %voffset, i32 %soffset) {367  ; GFX908-LABEL: name: llvm_amdgcn_raw_buffer_store_v2f32368  ; GFX908: bb.0 (%ir-block.0):369  ; GFX908-NEXT:   successors: %bb.1(0x80000000)370  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3371  ; GFX908-NEXT: {{  $}}372  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr3373  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr2374  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr1375  ; GFX908-NEXT:   [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr0376  ; GFX908-NEXT:   [[REG_SEQUENCE:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY3]], %subreg.sub0, [[COPY2]], %subreg.sub1377  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF378  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec379  ; GFX908-NEXT: {{  $}}380  ; GFX908-NEXT: bb.1:381  ; GFX908-NEXT:   successors: %bb.2(0x80000000)382  ; GFX908-NEXT: {{  $}}383  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec384  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec385  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec386  ; GFX908-NEXT: {{  $}}387  ; GFX908-NEXT: bb.2:388  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)389  ; GFX908-NEXT: {{  $}}390  ; GFX908-NEXT:   BUFFER_STORE_DWORDX2_OFFEN_exact [[REG_SEQUENCE]], [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 8)391  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc392  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec393  ; GFX908-NEXT: {{  $}}394  ; GFX908-NEXT: bb.3:395  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]396  ; GFX908-NEXT:   SI_RETURN397  call void @llvm.amdgcn.raw.buffer.store.v2f32(<2 x float> %val, <4 x i32> poison, i32 %voffset, i32 %soffset, i32 0)398  ret void399}400 401define void @llvm_amdgcn_raw_tbuffer_store_v2f32(<2 x float> %val, i32 %voffset, i32 %soffset) {402  ; GFX908-LABEL: name: llvm_amdgcn_raw_tbuffer_store_v2f32403  ; GFX908: bb.0 (%ir-block.0):404  ; GFX908-NEXT:   successors: %bb.1(0x80000000)405  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3406  ; GFX908-NEXT: {{  $}}407  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr3408  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr2409  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr1410  ; GFX908-NEXT:   [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr0411  ; GFX908-NEXT:   [[REG_SEQUENCE:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY3]], %subreg.sub0, [[COPY2]], %subreg.sub1412  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF413  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec414  ; GFX908-NEXT: {{  $}}415  ; GFX908-NEXT: bb.1:416  ; GFX908-NEXT:   successors: %bb.2(0x80000000)417  ; GFX908-NEXT: {{  $}}418  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec419  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec420  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec421  ; GFX908-NEXT: {{  $}}422  ; GFX908-NEXT: bb.2:423  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)424  ; GFX908-NEXT: {{  $}}425  ; GFX908-NEXT:   TBUFFER_STORE_FORMAT_XY_OFFEN_exact [[REG_SEQUENCE]], [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 8)426  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc427  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec428  ; GFX908-NEXT: {{  $}}429  ; GFX908-NEXT: bb.3:430  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]431  ; GFX908-NEXT:   SI_RETURN432  call void @llvm.amdgcn.raw.tbuffer.store.v2f32(<2 x float> %val, <4 x i32> poison, i32 %voffset, i32 %soffset, i32 0, i32 0)433  ret void434}435 436define void @llvm_amdgcn_raw_buffer_store_v3f32(<3 x float> %val, i32 %voffset, i32 %soffset) {437  ; GFX908-LABEL: name: llvm_amdgcn_raw_buffer_store_v3f32438  ; GFX908: bb.0 (%ir-block.0):439  ; GFX908-NEXT:   successors: %bb.1(0x80000000)440  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4441  ; GFX908-NEXT: {{  $}}442  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr4443  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr3444  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2445  ; GFX908-NEXT:   [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr1446  ; GFX908-NEXT:   [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr0447  ; GFX908-NEXT:   [[REG_SEQUENCE:%[0-9]+]]:vreg_96 = REG_SEQUENCE [[COPY4]], %subreg.sub0, [[COPY3]], %subreg.sub1, [[COPY2]], %subreg.sub2448  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF449  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec450  ; GFX908-NEXT: {{  $}}451  ; GFX908-NEXT: bb.1:452  ; GFX908-NEXT:   successors: %bb.2(0x80000000)453  ; GFX908-NEXT: {{  $}}454  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec455  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec456  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec457  ; GFX908-NEXT: {{  $}}458  ; GFX908-NEXT: bb.2:459  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)460  ; GFX908-NEXT: {{  $}}461  ; GFX908-NEXT:   BUFFER_STORE_DWORDX3_OFFEN_exact [[REG_SEQUENCE]], [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, implicit $exec :: (dereferenceable store (s96), align 1, addrspace 8)462  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc463  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec464  ; GFX908-NEXT: {{  $}}465  ; GFX908-NEXT: bb.3:466  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]467  ; GFX908-NEXT:   SI_RETURN468  call void @llvm.amdgcn.raw.buffer.store.v3f32(<3 x float> %val, <4 x i32> poison, i32 %voffset, i32 %soffset, i32 0)469  ret void470}471 472define void @llvm_amdgcn_raw_tbuffer_store_v3f32(<3 x float> %val, i32 %voffset, i32 %soffset) {473  ; GFX908-LABEL: name: llvm_amdgcn_raw_tbuffer_store_v3f32474  ; GFX908: bb.0 (%ir-block.0):475  ; GFX908-NEXT:   successors: %bb.1(0x80000000)476  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4477  ; GFX908-NEXT: {{  $}}478  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr4479  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr3480  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2481  ; GFX908-NEXT:   [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr1482  ; GFX908-NEXT:   [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr0483  ; GFX908-NEXT:   [[REG_SEQUENCE:%[0-9]+]]:vreg_96 = REG_SEQUENCE [[COPY4]], %subreg.sub0, [[COPY3]], %subreg.sub1, [[COPY2]], %subreg.sub2484  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF485  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec486  ; GFX908-NEXT: {{  $}}487  ; GFX908-NEXT: bb.1:488  ; GFX908-NEXT:   successors: %bb.2(0x80000000)489  ; GFX908-NEXT: {{  $}}490  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec491  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec492  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec493  ; GFX908-NEXT: {{  $}}494  ; GFX908-NEXT: bb.2:495  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)496  ; GFX908-NEXT: {{  $}}497  ; GFX908-NEXT:   TBUFFER_STORE_FORMAT_XYZ_OFFEN_exact [[REG_SEQUENCE]], [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, 0, implicit $exec :: (dereferenceable store (s96), align 1, addrspace 8)498  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc499  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec500  ; GFX908-NEXT: {{  $}}501  ; GFX908-NEXT: bb.3:502  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]503  ; GFX908-NEXT:   SI_RETURN504  call void @llvm.amdgcn.raw.tbuffer.store.v3f32(<3 x float> %val, <4 x i32> poison, i32 %voffset, i32 %soffset, i32 0, i32 0)505  ret void506}507 508define void @llvm_amdgcn_raw_buffer_store_v4f32(<4 x float> %val, i32 %voffset, i32 %soffset) {509  ; GFX908-LABEL: name: llvm_amdgcn_raw_buffer_store_v4f32510  ; GFX908: bb.0 (%ir-block.0):511  ; GFX908-NEXT:   successors: %bb.1(0x80000000)512  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5513  ; GFX908-NEXT: {{  $}}514  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr5515  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr4516  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr3517  ; GFX908-NEXT:   [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr2518  ; GFX908-NEXT:   [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr1519  ; GFX908-NEXT:   [[COPY5:%[0-9]+]]:vgpr_32 = COPY $vgpr0520  ; GFX908-NEXT:   [[REG_SEQUENCE:%[0-9]+]]:vreg_128 = REG_SEQUENCE [[COPY5]], %subreg.sub0, [[COPY4]], %subreg.sub1, [[COPY3]], %subreg.sub2, [[COPY2]], %subreg.sub3521  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF522  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec523  ; GFX908-NEXT: {{  $}}524  ; GFX908-NEXT: bb.1:525  ; GFX908-NEXT:   successors: %bb.2(0x80000000)526  ; GFX908-NEXT: {{  $}}527  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec528  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec529  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec530  ; GFX908-NEXT: {{  $}}531  ; GFX908-NEXT: bb.2:532  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)533  ; GFX908-NEXT: {{  $}}534  ; GFX908-NEXT:   BUFFER_STORE_DWORDX4_OFFEN_exact [[REG_SEQUENCE]], [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, implicit $exec :: (dereferenceable store (s128), align 1, addrspace 8)535  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc536  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec537  ; GFX908-NEXT: {{  $}}538  ; GFX908-NEXT: bb.3:539  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]540  ; GFX908-NEXT:   SI_RETURN541  call void @llvm.amdgcn.raw.buffer.store.v4f32(<4 x float> %val, <4 x i32> poison, i32 %voffset, i32 %soffset, i32 0)542  ret void543}544 545define void @llvm_amdgcn_raw_tbuffer_store_v4f32(<4 x float> %val, i32 %voffset, i32 %soffset) {546  ; GFX908-LABEL: name: llvm_amdgcn_raw_tbuffer_store_v4f32547  ; GFX908: bb.0 (%ir-block.0):548  ; GFX908-NEXT:   successors: %bb.1(0x80000000)549  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5550  ; GFX908-NEXT: {{  $}}551  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr5552  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr4553  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr3554  ; GFX908-NEXT:   [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr2555  ; GFX908-NEXT:   [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr1556  ; GFX908-NEXT:   [[COPY5:%[0-9]+]]:vgpr_32 = COPY $vgpr0557  ; GFX908-NEXT:   [[REG_SEQUENCE:%[0-9]+]]:vreg_128 = REG_SEQUENCE [[COPY5]], %subreg.sub0, [[COPY4]], %subreg.sub1, [[COPY3]], %subreg.sub2, [[COPY2]], %subreg.sub3558  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF559  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec560  ; GFX908-NEXT: {{  $}}561  ; GFX908-NEXT: bb.1:562  ; GFX908-NEXT:   successors: %bb.2(0x80000000)563  ; GFX908-NEXT: {{  $}}564  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec565  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec566  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec567  ; GFX908-NEXT: {{  $}}568  ; GFX908-NEXT: bb.2:569  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)570  ; GFX908-NEXT: {{  $}}571  ; GFX908-NEXT:   TBUFFER_STORE_FORMAT_XYZW_OFFEN_exact [[REG_SEQUENCE]], [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, 0, implicit $exec :: (dereferenceable store (s128), align 1, addrspace 8)572  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc573  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec574  ; GFX908-NEXT: {{  $}}575  ; GFX908-NEXT: bb.3:576  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]577  ; GFX908-NEXT:   SI_RETURN578  call void @llvm.amdgcn.raw.tbuffer.store.v4f32(<4 x float> %val, <4 x i32> poison, i32 %voffset, i32 %soffset, i32 0, i32 0)579  ret void580}581 582;; Newer intrinsics that taken addrspace(8) pointers583 584define float @llvm_amdgcn_raw_ptr_buffer_load_f32(i32 %voffset, i32 %soffset) {585  ; GFX908-LABEL: name: llvm_amdgcn_raw_ptr_buffer_load_f32586  ; GFX908: bb.0 (%ir-block.0):587  ; GFX908-NEXT:   successors: %bb.1(0x80000000)588  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1589  ; GFX908-NEXT: {{  $}}590  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr1591  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0592  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF593  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec594  ; GFX908-NEXT: {{  $}}595  ; GFX908-NEXT: bb.1:596  ; GFX908-NEXT:   successors: %bb.2(0x80000000)597  ; GFX908-NEXT: {{  $}}598  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec599  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec600  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec601  ; GFX908-NEXT: {{  $}}602  ; GFX908-NEXT: bb.2:603  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)604  ; GFX908-NEXT: {{  $}}605  ; GFX908-NEXT:   [[BUFFER_LOAD_DWORD_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_DWORD_OFFEN [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, implicit $exec :: (dereferenceable load (s32) from `ptr addrspace(8) poison`, align 1, addrspace 8)606  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc607  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec608  ; GFX908-NEXT: {{  $}}609  ; GFX908-NEXT: bb.3:610  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]611  ; GFX908-NEXT:   $vgpr0 = COPY [[BUFFER_LOAD_DWORD_OFFEN]]612  ; GFX908-NEXT:   SI_RETURN implicit $vgpr0613  %val = call float @llvm.amdgcn.raw.ptr.buffer.load.f32(ptr addrspace(8) poison, i32 %voffset, i32 %soffset, i32 0)614  ret float %val615}616 617define float @llvm_amdgcn_raw_ptr_tbuffer_load_f32(i32 %voffset, i32 %soffset) {618  ; GFX908-LABEL: name: llvm_amdgcn_raw_ptr_tbuffer_load_f32619  ; GFX908: bb.0 (%ir-block.0):620  ; GFX908-NEXT:   successors: %bb.1(0x80000000)621  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1622  ; GFX908-NEXT: {{  $}}623  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr1624  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0625  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF626  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec627  ; GFX908-NEXT: {{  $}}628  ; GFX908-NEXT: bb.1:629  ; GFX908-NEXT:   successors: %bb.2(0x80000000)630  ; GFX908-NEXT: {{  $}}631  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec632  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec633  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec634  ; GFX908-NEXT: {{  $}}635  ; GFX908-NEXT: bb.2:636  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)637  ; GFX908-NEXT: {{  $}}638  ; GFX908-NEXT:   [[TBUFFER_LOAD_FORMAT_X_OFFEN:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFEN [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s32) from `ptr addrspace(8) poison`, align 1, addrspace 8)639  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc640  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec641  ; GFX908-NEXT: {{  $}}642  ; GFX908-NEXT: bb.3:643  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]644  ; GFX908-NEXT:   $vgpr0 = COPY [[TBUFFER_LOAD_FORMAT_X_OFFEN]]645  ; GFX908-NEXT:   SI_RETURN implicit $vgpr0646  %val = call float @llvm.amdgcn.raw.ptr.tbuffer.load.f32(ptr addrspace(8) poison, i32 %voffset, i32 %soffset, i32 0, i32 0)647  ret float %val648}649 650define <2 x float> @llvm_amdgcn_raw_ptr_buffer_load_v2f32(i32 %voffset, i32 %soffset) {651  ; GFX908-LABEL: name: llvm_amdgcn_raw_ptr_buffer_load_v2f32652  ; GFX908: bb.0 (%ir-block.0):653  ; GFX908-NEXT:   successors: %bb.1(0x80000000)654  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1655  ; GFX908-NEXT: {{  $}}656  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr1657  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0658  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF659  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec660  ; GFX908-NEXT: {{  $}}661  ; GFX908-NEXT: bb.1:662  ; GFX908-NEXT:   successors: %bb.2(0x80000000)663  ; GFX908-NEXT: {{  $}}664  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec665  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec666  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec667  ; GFX908-NEXT: {{  $}}668  ; GFX908-NEXT: bb.2:669  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)670  ; GFX908-NEXT: {{  $}}671  ; GFX908-NEXT:   [[BUFFER_LOAD_DWORDX2_OFFEN:%[0-9]+]]:vreg_64 = BUFFER_LOAD_DWORDX2_OFFEN [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, implicit $exec :: (dereferenceable load (s64) from `ptr addrspace(8) poison`, align 1, addrspace 8)672  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc673  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec674  ; GFX908-NEXT: {{  $}}675  ; GFX908-NEXT: bb.3:676  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]677  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY [[BUFFER_LOAD_DWORDX2_OFFEN]].sub0678  ; GFX908-NEXT:   [[COPY3:%[0-9]+]]:vgpr_32 = COPY [[BUFFER_LOAD_DWORDX2_OFFEN]].sub1679  ; GFX908-NEXT:   $vgpr0 = COPY [[COPY2]]680  ; GFX908-NEXT:   $vgpr1 = COPY [[COPY3]]681  ; GFX908-NEXT:   SI_RETURN implicit $vgpr0, implicit $vgpr1682  %val = call <2 x float> @llvm.amdgcn.raw.ptr.buffer.load.v2f32(ptr addrspace(8) poison, i32 %voffset, i32 %soffset, i32 0)683  ret <2 x float> %val684}685 686define <2 x float> @llvm_amdgcn_raw_ptr_tbuffer_load_v2f32(i32 %voffset, i32 %soffset) {687  ; GFX908-LABEL: name: llvm_amdgcn_raw_ptr_tbuffer_load_v2f32688  ; GFX908: bb.0 (%ir-block.0):689  ; GFX908-NEXT:   successors: %bb.1(0x80000000)690  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1691  ; GFX908-NEXT: {{  $}}692  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr1693  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0694  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF695  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec696  ; GFX908-NEXT: {{  $}}697  ; GFX908-NEXT: bb.1:698  ; GFX908-NEXT:   successors: %bb.2(0x80000000)699  ; GFX908-NEXT: {{  $}}700  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec701  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec702  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec703  ; GFX908-NEXT: {{  $}}704  ; GFX908-NEXT: bb.2:705  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)706  ; GFX908-NEXT: {{  $}}707  ; GFX908-NEXT:   [[TBUFFER_LOAD_FORMAT_XY_OFFEN:%[0-9]+]]:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFEN [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s64) from `ptr addrspace(8) poison`, align 1, addrspace 8)708  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc709  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec710  ; GFX908-NEXT: {{  $}}711  ; GFX908-NEXT: bb.3:712  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]713  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XY_OFFEN]].sub0714  ; GFX908-NEXT:   [[COPY3:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XY_OFFEN]].sub1715  ; GFX908-NEXT:   $vgpr0 = COPY [[COPY2]]716  ; GFX908-NEXT:   $vgpr1 = COPY [[COPY3]]717  ; GFX908-NEXT:   SI_RETURN implicit $vgpr0, implicit $vgpr1718  %val = call <2 x float> @llvm.amdgcn.raw.ptr.tbuffer.load.v2f32(ptr addrspace(8) poison, i32 %voffset, i32 %soffset, i32 0, i32 0)719  ret <2 x float> %val720}721 722define <3 x float> @llvm_amdgcn_raw_ptr_buffer_load_v3f32(i32 %voffset, i32 %soffset) {723  ; GFX908-LABEL: name: llvm_amdgcn_raw_ptr_buffer_load_v3f32724  ; GFX908: bb.0 (%ir-block.0):725  ; GFX908-NEXT:   successors: %bb.1(0x80000000)726  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1727  ; GFX908-NEXT: {{  $}}728  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr1729  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0730  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF731  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec732  ; GFX908-NEXT: {{  $}}733  ; GFX908-NEXT: bb.1:734  ; GFX908-NEXT:   successors: %bb.2(0x80000000)735  ; GFX908-NEXT: {{  $}}736  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec737  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec738  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec739  ; GFX908-NEXT: {{  $}}740  ; GFX908-NEXT: bb.2:741  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)742  ; GFX908-NEXT: {{  $}}743  ; GFX908-NEXT:   [[BUFFER_LOAD_DWORDX3_OFFEN:%[0-9]+]]:vreg_96 = BUFFER_LOAD_DWORDX3_OFFEN [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, implicit $exec :: (dereferenceable load (s96) from `ptr addrspace(8) poison`, align 1, addrspace 8)744  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc745  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec746  ; GFX908-NEXT: {{  $}}747  ; GFX908-NEXT: bb.3:748  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]749  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY [[BUFFER_LOAD_DWORDX3_OFFEN]].sub0750  ; GFX908-NEXT:   [[COPY3:%[0-9]+]]:vgpr_32 = COPY [[BUFFER_LOAD_DWORDX3_OFFEN]].sub1751  ; GFX908-NEXT:   [[COPY4:%[0-9]+]]:vgpr_32 = COPY [[BUFFER_LOAD_DWORDX3_OFFEN]].sub2752  ; GFX908-NEXT:   $vgpr0 = COPY [[COPY2]]753  ; GFX908-NEXT:   $vgpr1 = COPY [[COPY3]]754  ; GFX908-NEXT:   $vgpr2 = COPY [[COPY4]]755  ; GFX908-NEXT:   SI_RETURN implicit $vgpr0, implicit $vgpr1, implicit $vgpr2756  %val = call <3 x float> @llvm.amdgcn.raw.ptr.buffer.load.v3f32(ptr addrspace(8) poison, i32 %voffset, i32 %soffset, i32 0)757  ret <3 x float> %val758}759 760define <3 x float> @llvm_amdgcn_raw_ptr_tbuffer_load_v3f32(i32 %voffset, i32 %soffset) {761  ; GFX908-LABEL: name: llvm_amdgcn_raw_ptr_tbuffer_load_v3f32762  ; GFX908: bb.0 (%ir-block.0):763  ; GFX908-NEXT:   successors: %bb.1(0x80000000)764  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1765  ; GFX908-NEXT: {{  $}}766  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr1767  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0768  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF769  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec770  ; GFX908-NEXT: {{  $}}771  ; GFX908-NEXT: bb.1:772  ; GFX908-NEXT:   successors: %bb.2(0x80000000)773  ; GFX908-NEXT: {{  $}}774  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec775  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec776  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec777  ; GFX908-NEXT: {{  $}}778  ; GFX908-NEXT: bb.2:779  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)780  ; GFX908-NEXT: {{  $}}781  ; GFX908-NEXT:   [[TBUFFER_LOAD_FORMAT_XYZ_OFFEN:%[0-9]+]]:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFEN [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s96) from `ptr addrspace(8) poison`, align 1, addrspace 8)782  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc783  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec784  ; GFX908-NEXT: {{  $}}785  ; GFX908-NEXT: bb.3:786  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]787  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XYZ_OFFEN]].sub0788  ; GFX908-NEXT:   [[COPY3:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XYZ_OFFEN]].sub1789  ; GFX908-NEXT:   [[COPY4:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XYZ_OFFEN]].sub2790  ; GFX908-NEXT:   $vgpr0 = COPY [[COPY2]]791  ; GFX908-NEXT:   $vgpr1 = COPY [[COPY3]]792  ; GFX908-NEXT:   $vgpr2 = COPY [[COPY4]]793  ; GFX908-NEXT:   SI_RETURN implicit $vgpr0, implicit $vgpr1, implicit $vgpr2794  %val = call <3 x float> @llvm.amdgcn.raw.ptr.tbuffer.load.v3f32(ptr addrspace(8) poison, i32 %voffset, i32 %soffset, i32 0, i32 0)795  ret <3 x float> %val796}797 798define <4 x float> @llvm_amdgcn_raw_ptr_buffer_load_v4f32(i32 %voffset, i32 %soffset) {799  ; GFX908-LABEL: name: llvm_amdgcn_raw_ptr_buffer_load_v4f32800  ; GFX908: bb.0 (%ir-block.0):801  ; GFX908-NEXT:   successors: %bb.1(0x80000000)802  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1803  ; GFX908-NEXT: {{  $}}804  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr1805  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0806  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF807  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec808  ; GFX908-NEXT: {{  $}}809  ; GFX908-NEXT: bb.1:810  ; GFX908-NEXT:   successors: %bb.2(0x80000000)811  ; GFX908-NEXT: {{  $}}812  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec813  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec814  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec815  ; GFX908-NEXT: {{  $}}816  ; GFX908-NEXT: bb.2:817  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)818  ; GFX908-NEXT: {{  $}}819  ; GFX908-NEXT:   [[BUFFER_LOAD_DWORDX4_OFFEN:%[0-9]+]]:vreg_128 = BUFFER_LOAD_DWORDX4_OFFEN [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, implicit $exec :: (dereferenceable load (s128) from `ptr addrspace(8) poison`, align 1, addrspace 8)820  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc821  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec822  ; GFX908-NEXT: {{  $}}823  ; GFX908-NEXT: bb.3:824  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]825  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY [[BUFFER_LOAD_DWORDX4_OFFEN]].sub0826  ; GFX908-NEXT:   [[COPY3:%[0-9]+]]:vgpr_32 = COPY [[BUFFER_LOAD_DWORDX4_OFFEN]].sub1827  ; GFX908-NEXT:   [[COPY4:%[0-9]+]]:vgpr_32 = COPY [[BUFFER_LOAD_DWORDX4_OFFEN]].sub2828  ; GFX908-NEXT:   [[COPY5:%[0-9]+]]:vgpr_32 = COPY [[BUFFER_LOAD_DWORDX4_OFFEN]].sub3829  ; GFX908-NEXT:   $vgpr0 = COPY [[COPY2]]830  ; GFX908-NEXT:   $vgpr1 = COPY [[COPY3]]831  ; GFX908-NEXT:   $vgpr2 = COPY [[COPY4]]832  ; GFX908-NEXT:   $vgpr3 = COPY [[COPY5]]833  ; GFX908-NEXT:   SI_RETURN implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3834  %val = call <4 x float> @llvm.amdgcn.raw.ptr.buffer.load.v4f32(ptr addrspace(8) poison, i32 %voffset, i32 %soffset, i32 0)835  ret <4 x float> %val836}837 838define <4 x float> @llvm_amdgcn_raw_ptr_tbuffer_load_v4f32(i32 %voffset, i32 %soffset) {839  ; GFX908-LABEL: name: llvm_amdgcn_raw_ptr_tbuffer_load_v4f32840  ; GFX908: bb.0 (%ir-block.0):841  ; GFX908-NEXT:   successors: %bb.1(0x80000000)842  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1843  ; GFX908-NEXT: {{  $}}844  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr1845  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0846  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF847  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec848  ; GFX908-NEXT: {{  $}}849  ; GFX908-NEXT: bb.1:850  ; GFX908-NEXT:   successors: %bb.2(0x80000000)851  ; GFX908-NEXT: {{  $}}852  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec853  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec854  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec855  ; GFX908-NEXT: {{  $}}856  ; GFX908-NEXT: bb.2:857  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)858  ; GFX908-NEXT: {{  $}}859  ; GFX908-NEXT:   [[TBUFFER_LOAD_FORMAT_XYZW_OFFEN:%[0-9]+]]:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_OFFEN [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s128) from `ptr addrspace(8) poison`, align 1, addrspace 8)860  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc861  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec862  ; GFX908-NEXT: {{  $}}863  ; GFX908-NEXT: bb.3:864  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]865  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XYZW_OFFEN]].sub0866  ; GFX908-NEXT:   [[COPY3:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XYZW_OFFEN]].sub1867  ; GFX908-NEXT:   [[COPY4:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XYZW_OFFEN]].sub2868  ; GFX908-NEXT:   [[COPY5:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XYZW_OFFEN]].sub3869  ; GFX908-NEXT:   $vgpr0 = COPY [[COPY2]]870  ; GFX908-NEXT:   $vgpr1 = COPY [[COPY3]]871  ; GFX908-NEXT:   $vgpr2 = COPY [[COPY4]]872  ; GFX908-NEXT:   $vgpr3 = COPY [[COPY5]]873  ; GFX908-NEXT:   SI_RETURN implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3874  %val = call <4 x float> @llvm.amdgcn.raw.ptr.tbuffer.load.v4f32(ptr addrspace(8) poison, i32 %voffset, i32 %soffset, i32 0, i32 0)875  ret <4 x float> %val876}877 878define void @llvm_amdgcn_raw_ptr_buffer_store_f32(float %val, i32 %voffset, i32 %soffset) {879  ; GFX908-LABEL: name: llvm_amdgcn_raw_ptr_buffer_store_f32880  ; GFX908: bb.0 (%ir-block.0):881  ; GFX908-NEXT:   successors: %bb.1(0x80000000)882  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1, $vgpr2883  ; GFX908-NEXT: {{  $}}884  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr2885  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1886  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr0887  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF888  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec889  ; GFX908-NEXT: {{  $}}890  ; GFX908-NEXT: bb.1:891  ; GFX908-NEXT:   successors: %bb.2(0x80000000)892  ; GFX908-NEXT: {{  $}}893  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec894  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec895  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec896  ; GFX908-NEXT: {{  $}}897  ; GFX908-NEXT: bb.2:898  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)899  ; GFX908-NEXT: {{  $}}900  ; GFX908-NEXT:   BUFFER_STORE_DWORD_OFFEN_exact [[COPY2]], [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, implicit $exec :: (dereferenceable store (s32) into `ptr addrspace(8) poison`, align 1, addrspace 8)901  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc902  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec903  ; GFX908-NEXT: {{  $}}904  ; GFX908-NEXT: bb.3:905  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]906  ; GFX908-NEXT:   SI_RETURN907  call void @llvm.amdgcn.raw.ptr.buffer.store.f32(float %val, ptr addrspace(8) poison, i32 %voffset, i32 %soffset, i32 0)908  ret void909}910 911define void @llvm_amdgcn_raw_ptr_tbuffer_store_f32(float %val, i32 %voffset, i32 %soffset) {912  ; GFX908-LABEL: name: llvm_amdgcn_raw_ptr_tbuffer_store_f32913  ; GFX908: bb.0 (%ir-block.0):914  ; GFX908-NEXT:   successors: %bb.1(0x80000000)915  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1, $vgpr2916  ; GFX908-NEXT: {{  $}}917  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr2918  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1919  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr0920  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF921  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec922  ; GFX908-NEXT: {{  $}}923  ; GFX908-NEXT: bb.1:924  ; GFX908-NEXT:   successors: %bb.2(0x80000000)925  ; GFX908-NEXT: {{  $}}926  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec927  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec928  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec929  ; GFX908-NEXT: {{  $}}930  ; GFX908-NEXT: bb.2:931  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)932  ; GFX908-NEXT: {{  $}}933  ; GFX908-NEXT:   TBUFFER_STORE_FORMAT_X_OFFEN_exact [[COPY2]], [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, 0, implicit $exec :: (dereferenceable store (s32) into `ptr addrspace(8) poison`, align 1, addrspace 8)934  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc935  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec936  ; GFX908-NEXT: {{  $}}937  ; GFX908-NEXT: bb.3:938  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]939  ; GFX908-NEXT:   SI_RETURN940  call void @llvm.amdgcn.raw.ptr.tbuffer.store.f32(float %val, ptr addrspace(8) poison, i32 %voffset, i32 %soffset, i32 0, i32 0)941  ret void942}943 944define void @llvm_amdgcn_raw_ptr_buffer_store_v2f32(<2 x float> %val, i32 %voffset, i32 %soffset) {945  ; GFX908-LABEL: name: llvm_amdgcn_raw_ptr_buffer_store_v2f32946  ; GFX908: bb.0 (%ir-block.0):947  ; GFX908-NEXT:   successors: %bb.1(0x80000000)948  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3949  ; GFX908-NEXT: {{  $}}950  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr3951  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr2952  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr1953  ; GFX908-NEXT:   [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr0954  ; GFX908-NEXT:   [[REG_SEQUENCE:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY3]], %subreg.sub0, [[COPY2]], %subreg.sub1955  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF956  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec957  ; GFX908-NEXT: {{  $}}958  ; GFX908-NEXT: bb.1:959  ; GFX908-NEXT:   successors: %bb.2(0x80000000)960  ; GFX908-NEXT: {{  $}}961  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec962  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec963  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec964  ; GFX908-NEXT: {{  $}}965  ; GFX908-NEXT: bb.2:966  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)967  ; GFX908-NEXT: {{  $}}968  ; GFX908-NEXT:   BUFFER_STORE_DWORDX2_OFFEN_exact [[REG_SEQUENCE]], [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, implicit $exec :: (dereferenceable store (s64) into `ptr addrspace(8) poison`, align 1, addrspace 8)969  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc970  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec971  ; GFX908-NEXT: {{  $}}972  ; GFX908-NEXT: bb.3:973  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]974  ; GFX908-NEXT:   SI_RETURN975  call void @llvm.amdgcn.raw.ptr.buffer.store.v2f32(<2 x float> %val, ptr addrspace(8) poison, i32 %voffset, i32 %soffset, i32 0)976  ret void977}978 979define void @llvm_amdgcn_raw_ptr_tbuffer_store_v2f32(<2 x float> %val, i32 %voffset, i32 %soffset) {980  ; GFX908-LABEL: name: llvm_amdgcn_raw_ptr_tbuffer_store_v2f32981  ; GFX908: bb.0 (%ir-block.0):982  ; GFX908-NEXT:   successors: %bb.1(0x80000000)983  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3984  ; GFX908-NEXT: {{  $}}985  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr3986  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr2987  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr1988  ; GFX908-NEXT:   [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr0989  ; GFX908-NEXT:   [[REG_SEQUENCE:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY3]], %subreg.sub0, [[COPY2]], %subreg.sub1990  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF991  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec992  ; GFX908-NEXT: {{  $}}993  ; GFX908-NEXT: bb.1:994  ; GFX908-NEXT:   successors: %bb.2(0x80000000)995  ; GFX908-NEXT: {{  $}}996  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec997  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec998  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec999  ; GFX908-NEXT: {{  $}}1000  ; GFX908-NEXT: bb.2:1001  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)1002  ; GFX908-NEXT: {{  $}}1003  ; GFX908-NEXT:   TBUFFER_STORE_FORMAT_XY_OFFEN_exact [[REG_SEQUENCE]], [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, 0, implicit $exec :: (dereferenceable store (s64) into `ptr addrspace(8) poison`, align 1, addrspace 8)1004  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc1005  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec1006  ; GFX908-NEXT: {{  $}}1007  ; GFX908-NEXT: bb.3:1008  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]1009  ; GFX908-NEXT:   SI_RETURN1010  call void @llvm.amdgcn.raw.ptr.tbuffer.store.v2f32(<2 x float> %val, ptr addrspace(8) poison, i32 %voffset, i32 %soffset, i32 0, i32 0)1011  ret void1012}1013 1014define void @llvm_amdgcn_raw_ptr_buffer_store_v3f32(<3 x float> %val, i32 %voffset, i32 %soffset) {1015  ; GFX908-LABEL: name: llvm_amdgcn_raw_ptr_buffer_store_v3f321016  ; GFX908: bb.0 (%ir-block.0):1017  ; GFX908-NEXT:   successors: %bb.1(0x80000000)1018  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr41019  ; GFX908-NEXT: {{  $}}1020  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr41021  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr31022  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr21023  ; GFX908-NEXT:   [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr11024  ; GFX908-NEXT:   [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr01025  ; GFX908-NEXT:   [[REG_SEQUENCE:%[0-9]+]]:vreg_96 = REG_SEQUENCE [[COPY4]], %subreg.sub0, [[COPY3]], %subreg.sub1, [[COPY2]], %subreg.sub21026  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF1027  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec1028  ; GFX908-NEXT: {{  $}}1029  ; GFX908-NEXT: bb.1:1030  ; GFX908-NEXT:   successors: %bb.2(0x80000000)1031  ; GFX908-NEXT: {{  $}}1032  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec1033  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec1034  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec1035  ; GFX908-NEXT: {{  $}}1036  ; GFX908-NEXT: bb.2:1037  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)1038  ; GFX908-NEXT: {{  $}}1039  ; GFX908-NEXT:   BUFFER_STORE_DWORDX3_OFFEN_exact [[REG_SEQUENCE]], [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, implicit $exec :: (dereferenceable store (s96) into `ptr addrspace(8) poison`, align 1, addrspace 8)1040  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc1041  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec1042  ; GFX908-NEXT: {{  $}}1043  ; GFX908-NEXT: bb.3:1044  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]1045  ; GFX908-NEXT:   SI_RETURN1046  call void @llvm.amdgcn.raw.ptr.buffer.store.v3f32(<3 x float> %val, ptr addrspace(8) poison, i32 %voffset, i32 %soffset, i32 0)1047  ret void1048}1049 1050define void @llvm_amdgcn_raw_ptr_tbuffer_store_v3f32(<3 x float> %val, i32 %voffset, i32 %soffset) {1051  ; GFX908-LABEL: name: llvm_amdgcn_raw_ptr_tbuffer_store_v3f321052  ; GFX908: bb.0 (%ir-block.0):1053  ; GFX908-NEXT:   successors: %bb.1(0x80000000)1054  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr41055  ; GFX908-NEXT: {{  $}}1056  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr41057  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr31058  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr21059  ; GFX908-NEXT:   [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr11060  ; GFX908-NEXT:   [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr01061  ; GFX908-NEXT:   [[REG_SEQUENCE:%[0-9]+]]:vreg_96 = REG_SEQUENCE [[COPY4]], %subreg.sub0, [[COPY3]], %subreg.sub1, [[COPY2]], %subreg.sub21062  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF1063  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec1064  ; GFX908-NEXT: {{  $}}1065  ; GFX908-NEXT: bb.1:1066  ; GFX908-NEXT:   successors: %bb.2(0x80000000)1067  ; GFX908-NEXT: {{  $}}1068  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec1069  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec1070  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec1071  ; GFX908-NEXT: {{  $}}1072  ; GFX908-NEXT: bb.2:1073  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)1074  ; GFX908-NEXT: {{  $}}1075  ; GFX908-NEXT:   TBUFFER_STORE_FORMAT_XYZ_OFFEN_exact [[REG_SEQUENCE]], [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, 0, implicit $exec :: (dereferenceable store (s96) into `ptr addrspace(8) poison`, align 1, addrspace 8)1076  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc1077  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec1078  ; GFX908-NEXT: {{  $}}1079  ; GFX908-NEXT: bb.3:1080  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]1081  ; GFX908-NEXT:   SI_RETURN1082  call void @llvm.amdgcn.raw.ptr.tbuffer.store.v3f32(<3 x float> %val, ptr addrspace(8) poison, i32 %voffset, i32 %soffset, i32 0, i32 0)1083  ret void1084}1085 1086define void @llvm_amdgcn_raw_ptr_buffer_store_v4f32(<4 x float> %val, i32 %voffset, i32 %soffset) {1087  ; GFX908-LABEL: name: llvm_amdgcn_raw_ptr_buffer_store_v4f321088  ; GFX908: bb.0 (%ir-block.0):1089  ; GFX908-NEXT:   successors: %bb.1(0x80000000)1090  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr51091  ; GFX908-NEXT: {{  $}}1092  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr51093  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr41094  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr31095  ; GFX908-NEXT:   [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr21096  ; GFX908-NEXT:   [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr11097  ; GFX908-NEXT:   [[COPY5:%[0-9]+]]:vgpr_32 = COPY $vgpr01098  ; GFX908-NEXT:   [[REG_SEQUENCE:%[0-9]+]]:vreg_128 = REG_SEQUENCE [[COPY5]], %subreg.sub0, [[COPY4]], %subreg.sub1, [[COPY3]], %subreg.sub2, [[COPY2]], %subreg.sub31099  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF1100  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec1101  ; GFX908-NEXT: {{  $}}1102  ; GFX908-NEXT: bb.1:1103  ; GFX908-NEXT:   successors: %bb.2(0x80000000)1104  ; GFX908-NEXT: {{  $}}1105  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec1106  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec1107  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec1108  ; GFX908-NEXT: {{  $}}1109  ; GFX908-NEXT: bb.2:1110  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)1111  ; GFX908-NEXT: {{  $}}1112  ; GFX908-NEXT:   BUFFER_STORE_DWORDX4_OFFEN_exact [[REG_SEQUENCE]], [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, implicit $exec :: (dereferenceable store (s128) into `ptr addrspace(8) poison`, align 1, addrspace 8)1113  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc1114  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec1115  ; GFX908-NEXT: {{  $}}1116  ; GFX908-NEXT: bb.3:1117  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]1118  ; GFX908-NEXT:   SI_RETURN1119  call void @llvm.amdgcn.raw.ptr.buffer.store.v4f32(<4 x float> %val, ptr addrspace(8) poison, i32 %voffset, i32 %soffset, i32 0)1120  ret void1121}1122 1123define void @llvm_amdgcn_raw_ptr_tbuffer_store_v4f32(<4 x float> %val, i32 %voffset, i32 %soffset) {1124  ; GFX908-LABEL: name: llvm_amdgcn_raw_ptr_tbuffer_store_v4f321125  ; GFX908: bb.0 (%ir-block.0):1126  ; GFX908-NEXT:   successors: %bb.1(0x80000000)1127  ; GFX908-NEXT:   liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr51128  ; GFX908-NEXT: {{  $}}1129  ; GFX908-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr51130  ; GFX908-NEXT:   [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr41131  ; GFX908-NEXT:   [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr31132  ; GFX908-NEXT:   [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr21133  ; GFX908-NEXT:   [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr11134  ; GFX908-NEXT:   [[COPY5:%[0-9]+]]:vgpr_32 = COPY $vgpr01135  ; GFX908-NEXT:   [[REG_SEQUENCE:%[0-9]+]]:vreg_128 = REG_SEQUENCE [[COPY5]], %subreg.sub0, [[COPY4]], %subreg.sub1, [[COPY3]], %subreg.sub2, [[COPY2]], %subreg.sub31136  ; GFX908-NEXT:   [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF1137  ; GFX908-NEXT:   [[S_MOV_B64_:%[0-9]+]]:sreg_64_xexec = S_MOV_B64 $exec1138  ; GFX908-NEXT: {{  $}}1139  ; GFX908-NEXT: bb.1:1140  ; GFX908-NEXT:   successors: %bb.2(0x80000000)1141  ; GFX908-NEXT: {{  $}}1142  ; GFX908-NEXT:   [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32_xm0 = V_READFIRSTLANE_B32 [[COPY]], implicit $exec1143  ; GFX908-NEXT:   [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[V_READFIRSTLANE_B32_]], [[COPY]], implicit $exec1144  ; GFX908-NEXT:   [[S_AND_SAVEEXEC_B64_:%[0-9]+]]:sreg_64_xexec = S_AND_SAVEEXEC_B64 killed [[V_CMP_EQ_U32_e64_]], implicit-def $exec, implicit-def $scc, implicit $exec1145  ; GFX908-NEXT: {{  $}}1146  ; GFX908-NEXT: bb.2:1147  ; GFX908-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)1148  ; GFX908-NEXT: {{  $}}1149  ; GFX908-NEXT:   TBUFFER_STORE_FORMAT_XYZW_OFFEN_exact [[REG_SEQUENCE]], [[COPY1]], [[DEF]], killed [[V_READFIRSTLANE_B32_]], 0, 0, 0, 0, implicit $exec :: (dereferenceable store (s128) into `ptr addrspace(8) poison`, align 1, addrspace 8)1150  ; GFX908-NEXT:   $exec = S_XOR_B64_term $exec, [[S_AND_SAVEEXEC_B64_]], implicit-def $scc1151  ; GFX908-NEXT:   SI_WATERFALL_LOOP %bb.1, implicit $exec1152  ; GFX908-NEXT: {{  $}}1153  ; GFX908-NEXT: bb.3:1154  ; GFX908-NEXT:   $exec = S_MOV_B64 [[S_MOV_B64_]]1155  ; GFX908-NEXT:   SI_RETURN1156  call void @llvm.amdgcn.raw.ptr.tbuffer.store.v4f32(<4 x float> %val, ptr addrspace(8) poison, i32 %voffset, i32 %soffset, i32 0, i32 0)1157  ret void1158}1159 1160declare float @llvm.amdgcn.raw.buffer.load.f32(<4 x i32>, i32, i32, i32 )1161declare float @llvm.amdgcn.raw.tbuffer.load.f32(<4 x i32>, i32, i32, i32, i32)1162declare <2 x float> @llvm.amdgcn.raw.buffer.load.v2f32(<4 x i32>, i32, i32, i32)1163declare <2 x float> @llvm.amdgcn.raw.tbuffer.load.v2f32(<4 x i32>, i32, i32, i32, i32)1164declare <3 x float> @llvm.amdgcn.raw.buffer.load.v3f32(<4 x i32>, i32, i32, i32)1165declare <3 x float> @llvm.amdgcn.raw.tbuffer.load.v3f32(<4 x i32>, i32, i32, i32, i32)1166declare <4 x float> @llvm.amdgcn.raw.buffer.load.v4f32(<4 x i32>, i32, i32, i32)1167declare <4 x float> @llvm.amdgcn.raw.tbuffer.load.v4f32(<4 x i32>, i32, i32, i32, i32)1168declare void @llvm.amdgcn.raw.buffer.store.f32(float, <4 x i32>, i32, i32, i32)1169declare void @llvm.amdgcn.raw.tbuffer.store.f32(float, <4 x i32>, i32, i32, i32, i32)1170declare void @llvm.amdgcn.raw.buffer.store.v2f32(<2 x float>, <4 x i32>, i32, i32, i32)1171declare void @llvm.amdgcn.raw.tbuffer.store.v2f32(<2 x float>, <4 x i32>, i32, i32, i32, i32)1172declare void @llvm.amdgcn.raw.buffer.store.v3f32(<3 x float>, <4 x i32>, i32, i32, i32)1173declare void @llvm.amdgcn.raw.tbuffer.store.v3f32(<3 x float>, <4 x i32>, i32, i32, i32, i32)1174declare void @llvm.amdgcn.raw.buffer.store.v4f32(<4 x float>, <4 x i32>, i32, i32, i32)1175declare void @llvm.amdgcn.raw.tbuffer.store.v4f32(<4 x float>, <4 x i32>, i32, i32, i32, i32)1176 1177declare float @llvm.amdgcn.raw.ptr.buffer.load.f32(ptr addrspace(8) nocapture, i32, i32, i32 )1178declare float @llvm.amdgcn.raw.ptr.tbuffer.load.f32(ptr addrspace(8) nocapture, i32, i32, i32, i32)1179declare <2 x float> @llvm.amdgcn.raw.ptr.buffer.load.v2f32(ptr addrspace(8) nocapture, i32, i32, i32)1180declare <2 x float> @llvm.amdgcn.raw.ptr.tbuffer.load.v2f32(ptr addrspace(8) nocapture, i32, i32, i32, i32)1181declare <3 x float> @llvm.amdgcn.raw.ptr.buffer.load.v3f32(ptr addrspace(8) nocapture, i32, i32, i32)1182declare <3 x float> @llvm.amdgcn.raw.ptr.tbuffer.load.v3f32(ptr addrspace(8) nocapture, i32, i32, i32, i32)1183declare <4 x float> @llvm.amdgcn.raw.ptr.buffer.load.v4f32(ptr addrspace(8) nocapture, i32, i32, i32)1184declare <4 x float> @llvm.amdgcn.raw.ptr.tbuffer.load.v4f32(ptr addrspace(8) nocapture, i32, i32, i32, i32)1185declare void @llvm.amdgcn.raw.ptr.buffer.store.f32(float, ptr addrspace(8) nocapture, i32, i32, i32)1186declare void @llvm.amdgcn.raw.ptr.tbuffer.store.f32(float, ptr addrspace(8) nocapture, i32, i32, i32, i32)1187declare void @llvm.amdgcn.raw.ptr.buffer.store.v2f32(<2 x float>, ptr addrspace(8) nocapture, i32, i32, i32)1188declare void @llvm.amdgcn.raw.ptr.tbuffer.store.v2f32(<2 x float>, ptr addrspace(8) nocapture, i32, i32, i32, i32)1189declare void @llvm.amdgcn.raw.ptr.buffer.store.v3f32(<3 x float>, ptr addrspace(8) nocapture, i32, i32, i32)1190declare void @llvm.amdgcn.raw.ptr.tbuffer.store.v3f32(<3 x float>, ptr addrspace(8) nocapture, i32, i32, i32, i32)1191declare void @llvm.amdgcn.raw.ptr.buffer.store.v4f32(<4 x float>, ptr addrspace(8) nocapture, i32, i32, i32)1192declare void @llvm.amdgcn.raw.ptr.tbuffer.store.v4f32(<4 x float>, ptr addrspace(8) nocapture, i32, i32, i32, i32)1193