brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.6 KiB · 9d25df4 Raw
108 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx908 -verify-machineinstrs -run-pass=prologepilog %s -o - | FileCheck -check-prefix=CHECK %s3 4---5name: spill_a64_kill6tracksRegLiveness: true7stack:8  - { id: 0, type: spill-slot, size: 8, alignment: 4 }9machineFunctionInfo:10  scratchRSrcReg:  '$sgpr0_sgpr1_sgpr2_sgpr3'11  stackPtrOffsetReg: '$sgpr32'12  frameOffsetReg: '$sgpr33'13body:             |14  bb.0:15    liveins: $agpr0_agpr116 17    ; CHECK-LABEL: name: spill_a64_kill18    ; CHECK: liveins: $agpr0_agpr119    ; CHECK-NEXT: {{  $}}20    ; CHECK-NEXT: $vgpr0 = V_ACCVGPR_READ_B32_e64 killed $agpr0, implicit $exec, implicit-def $agpr0_agpr1, implicit $agpr0_agpr121    ; CHECK-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 0, 0, 0, implicit $exec, implicit $agpr0_agpr1 :: (store (s32) into %stack.0, addrspace 5)22    ; CHECK-NEXT: $vgpr0 = V_ACCVGPR_READ_B32_e64 killed $agpr1, implicit $exec, implicit $agpr0_agpr123    ; CHECK-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 4, 0, 0, implicit $exec, implicit killed $agpr0_agpr1 :: (store (s32) into %stack.0 + 4, addrspace 5)24    SI_SPILL_A64_SAVE killed $agpr0_agpr1, %stack.0, $sgpr32, 0, implicit $exec :: (store (s64) into %stack.0, addrspace 5)25...26 27# Make sure there's no verifier error on the undef spill component when the value is killed.28 29---30name: spill_a64_undef_sub1_killed31tracksRegLiveness: true32stack:33  - { id: 0, type: spill-slot, size: 8, alignment: 4 }34machineFunctionInfo:35  scratchRSrcReg:  '$sgpr0_sgpr1_sgpr2_sgpr3'36  stackPtrOffsetReg: '$sgpr32'37  frameOffsetReg: '$sgpr33'38body:             |39  bb.0:40    liveins: $agpr041 42    ; CHECK-LABEL: name: spill_a64_undef_sub1_killed43    ; CHECK: liveins: $agpr044    ; CHECK-NEXT: {{  $}}45    ; CHECK-NEXT: $vgpr0 = V_ACCVGPR_READ_B32_e64 killed $agpr0, implicit $exec, implicit-def $agpr0_agpr1, implicit $agpr0_agpr146    ; CHECK-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 0, 0, 0, implicit $exec, implicit $agpr0_agpr1 :: (store (s32) into %stack.0, addrspace 5)47    ; CHECK-NEXT: $vgpr0 = V_ACCVGPR_READ_B32_e64 killed $agpr1, implicit $exec, implicit $agpr0_agpr148    ; CHECK-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 4, 0, 0, implicit $exec, implicit killed $agpr0_agpr1 :: (store (s32) into %stack.0 + 4, addrspace 5)49    SI_SPILL_A64_SAVE killed $agpr0_agpr1, %stack.0, $sgpr32, 0, implicit $exec :: (store (s64) into %stack.0, addrspace 5)50...51 52---53name: spill_a64_undef_sub0_killed54tracksRegLiveness: true55stack:56  - { id: 0, type: spill-slot, size: 8, alignment: 4 }57machineFunctionInfo:58  scratchRSrcReg:  '$sgpr0_sgpr1_sgpr2_sgpr3'59  stackPtrOffsetReg: '$sgpr32'60  frameOffsetReg: '$sgpr33'61body:             |62  bb.0:63    liveins: $agpr164 65    ; CHECK-LABEL: name: spill_a64_undef_sub0_killed66    ; CHECK: liveins: $agpr167    ; CHECK-NEXT: {{  $}}68    ; CHECK-NEXT: $vgpr0 = V_ACCVGPR_READ_B32_e64 killed $agpr0, implicit $exec, implicit-def $agpr0_agpr1, implicit $agpr0_agpr169    ; CHECK-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 0, 0, 0, implicit $exec, implicit $agpr0_agpr1 :: (store (s32) into %stack.0, addrspace 5)70    ; CHECK-NEXT: $vgpr0 = V_ACCVGPR_READ_B32_e64 killed $agpr1, implicit $exec, implicit $agpr0_agpr171    ; CHECK-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 4, 0, 0, implicit $exec, implicit killed $agpr0_agpr1 :: (store (s32) into %stack.0 + 4, addrspace 5)72    SI_SPILL_A64_SAVE killed $agpr0_agpr1, %stack.0, $sgpr32, 0, implicit $exec :: (store (s64) into %stack.0, addrspace 5)73...74 75---76name: spill_a32_undef77tracksRegLiveness: true78stack:79  - { id: 0, type: spill-slot, size: 4, alignment: 4 }80machineFunctionInfo:81  scratchRSrcReg:  '$sgpr0_sgpr1_sgpr2_sgpr3'82  stackPtrOffsetReg: '$sgpr32'83  frameOffsetReg: '$sgpr33'84body:             |85  bb.0:86    ; CHECK-LABEL: name: spill_a32_undef87    ; CHECK: S_ENDPGM 088    SI_SPILL_A32_SAVE undef $agpr0, %stack.0, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5)89    S_ENDPGM 090...91 92---93name: spill_a64_undef94tracksRegLiveness: true95stack:96  - { id: 0, type: spill-slot, size: 8, alignment: 4 }97machineFunctionInfo:98  scratchRSrcReg:  '$sgpr0_sgpr1_sgpr2_sgpr3'99  stackPtrOffsetReg: '$sgpr32'100  frameOffsetReg: '$sgpr33'101body:             |102  bb.0:103    ; CHECK-LABEL: name: spill_a64_undef104    ; CHECK: S_ENDPGM 0105    SI_SPILL_A64_SAVE undef $agpr0_agpr1, %stack.0, $sgpr32, 0, implicit $exec :: (store (s64) into %stack.0, addrspace 5)106    S_ENDPGM 0107...108