brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.7 KiB · edea344 Raw
190 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -verify-machineinstrs -run-pass=prologepilog %s -o - | FileCheck -check-prefix=CHECK %s3 4---5name: spill_v326tracksRegLiveness: true7stack:8  - { id: 0, type: spill-slot, size: 4, alignment: 4 }9machineFunctionInfo:10  scratchRSrcReg:  '$sgpr0_sgpr1_sgpr2_sgpr3'11  stackPtrOffsetReg: '$sgpr32'12  frameOffsetReg: '$sgpr33'13body:             |14  bb.0:15    liveins: $vgpr016 17    ; CHECK-LABEL: name: spill_v3218    ; CHECK: liveins: $vgpr019    ; CHECK-NEXT: {{  $}}20    ; CHECK-NEXT: BUFFER_STORE_DWORD_OFFSET $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 0, 0, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5)21    ; CHECK-NEXT: S_NOP 0, implicit $vgpr022    SI_SPILL_V32_SAVE $vgpr0, %stack.0, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5)23    S_NOP 0, implicit $vgpr024...25 26---27name: spill_v32_kill28tracksRegLiveness: true29stack:30  - { id: 0, type: spill-slot, size: 4, alignment: 4 }31machineFunctionInfo:32  scratchRSrcReg:  '$sgpr0_sgpr1_sgpr2_sgpr3'33  stackPtrOffsetReg: '$sgpr32'34  frameOffsetReg: '$sgpr33'35body:             |36  bb.0:37    liveins: $vgpr038 39    ; CHECK-LABEL: name: spill_v32_kill40    ; CHECK: liveins: $vgpr041    ; CHECK-NEXT: {{  $}}42    ; CHECK-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 0, 0, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5)43    SI_SPILL_V32_SAVE killed $vgpr0, %stack.0, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5)44...45 46---47name: spill_v6448tracksRegLiveness: true49stack:50  - { id: 0, type: spill-slot, size: 8, alignment: 4 }51machineFunctionInfo:52  scratchRSrcReg:  '$sgpr0_sgpr1_sgpr2_sgpr3'53  stackPtrOffsetReg: '$sgpr32'54  frameOffsetReg: '$sgpr33'55body:             |56  bb.0:57    liveins: $vgpr0_vgpr158 59    ; CHECK-LABEL: name: spill_v6460    ; CHECK: liveins: $vgpr0_vgpr161    ; CHECK-NEXT: {{  $}}62    ; CHECK-NEXT: BUFFER_STORE_DWORD_OFFSET $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 0, 0, 0, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $vgpr0_vgpr1 :: (store (s32) into %stack.0, addrspace 5)63    ; CHECK-NEXT: BUFFER_STORE_DWORD_OFFSET $vgpr1, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 4, 0, 0, implicit $exec, implicit $vgpr0_vgpr1 :: (store (s32) into %stack.0 + 4, addrspace 5)64    ; CHECK-NEXT: S_NOP 0, implicit $vgpr0_vgpr165    SI_SPILL_V64_SAVE $vgpr0_vgpr1, %stack.0, $sgpr32, 0, implicit $exec :: (store (s64) into %stack.0, addrspace 5)66    S_NOP 0, implicit $vgpr0_vgpr167...68 69---70name: spill_v64_kill71tracksRegLiveness: true72stack:73  - { id: 0, type: spill-slot, size: 8, alignment: 4 }74machineFunctionInfo:75  scratchRSrcReg:  '$sgpr0_sgpr1_sgpr2_sgpr3'76  stackPtrOffsetReg: '$sgpr32'77  frameOffsetReg: '$sgpr33'78body:             |79  bb.0:80    liveins: $vgpr0_vgpr181 82    ; CHECK-LABEL: name: spill_v64_kill83    ; CHECK: liveins: $vgpr0_vgpr184    ; CHECK-NEXT: {{  $}}85    ; CHECK-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 0, 0, 0, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $vgpr0_vgpr1 :: (store (s32) into %stack.0, addrspace 5)86    ; CHECK-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr1, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 4, 0, 0, implicit $exec, implicit killed $vgpr0_vgpr1 :: (store (s32) into %stack.0 + 4, addrspace 5)87    SI_SPILL_V64_SAVE killed $vgpr0_vgpr1, %stack.0, $sgpr32, 0, implicit $exec :: (store (s64) into %stack.0, addrspace 5)88...89 90# Make sure there's no verifier error on the undef spill component when the value is killed.91 92---93name: spill_v64_undef_sub1_killed94tracksRegLiveness: 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    liveins: $vgpr0104 105    ; CHECK-LABEL: name: spill_v64_undef_sub1_killed106    ; CHECK: liveins: $vgpr0107    ; CHECK-NEXT: {{  $}}108    ; CHECK-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 0, 0, 0, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $vgpr0_vgpr1 :: (store (s32) into %stack.0, addrspace 5)109    ; CHECK-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr1, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 4, 0, 0, implicit $exec, implicit killed $vgpr0_vgpr1 :: (store (s32) into %stack.0 + 4, addrspace 5)110    SI_SPILL_V64_SAVE killed $vgpr0_vgpr1, %stack.0, $sgpr32, 0, implicit $exec :: (store (s64) into %stack.0, addrspace 5)111...112 113---114name: spill_v64_undef_sub0_killed115tracksRegLiveness: true116stack:117  - { id: 0, type: spill-slot, size: 8, alignment: 4 }118machineFunctionInfo:119  scratchRSrcReg:  '$sgpr0_sgpr1_sgpr2_sgpr3'120  stackPtrOffsetReg: '$sgpr32'121  frameOffsetReg: '$sgpr33'122body:             |123  bb.0:124    liveins: $vgpr1125 126    ; CHECK-LABEL: name: spill_v64_undef_sub0_killed127    ; CHECK: liveins: $vgpr1128    ; CHECK-NEXT: {{  $}}129    ; CHECK-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 0, 0, 0, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $vgpr0_vgpr1 :: (store (s32) into %stack.0, addrspace 5)130    ; CHECK-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr1, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 4, 0, 0, implicit $exec, implicit killed $vgpr0_vgpr1 :: (store (s32) into %stack.0 + 4, addrspace 5)131    SI_SPILL_V64_SAVE killed $vgpr0_vgpr1, %stack.0, $sgpr32, 0, implicit $exec :: (store (s64) into %stack.0, addrspace 5)132...133 134---135name: spill_v128_kill136tracksRegLiveness: true137stack:138  - { id: 0, type: spill-slot, size: 16, alignment: 4 }139machineFunctionInfo:140  scratchRSrcReg:  '$sgpr0_sgpr1_sgpr2_sgpr3'141  stackPtrOffsetReg: '$sgpr32'142  frameOffsetReg: '$sgpr33'143body:             |144  bb.0:145    liveins: $vgpr0_vgpr1_vgpr2_vgpr3146 147    ; CHECK-LABEL: name: spill_v128_kill148    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3149    ; CHECK-NEXT: {{  $}}150    ; CHECK-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 0, 0, 0, implicit $exec, implicit-def $vgpr0_vgpr1_vgpr2_vgpr3, implicit $vgpr0_vgpr1_vgpr2_vgpr3 :: (store (s32) into %stack.0, addrspace 5)151    ; CHECK-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr1, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 4, 0, 0, implicit $exec :: (store (s32) into %stack.0 + 4, addrspace 5)152    ; CHECK-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr2, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 8, 0, 0, implicit $exec :: (store (s32) into %stack.0 + 8, addrspace 5)153    ; CHECK-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr3, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 12, 0, 0, implicit $exec, implicit killed $vgpr0_vgpr1_vgpr2_vgpr3 :: (store (s32) into %stack.0 + 12, addrspace 5)154    SI_SPILL_V128_SAVE killed $vgpr0_vgpr1_vgpr2_vgpr3, %stack.0, $sgpr32, 0, implicit $exec :: (store (s128) into %stack.0, addrspace 5)155...156 157---158name: spill_v32_undef159tracksRegLiveness: true160stack:161  - { id: 0, type: spill-slot, size: 4, alignment: 4 }162machineFunctionInfo:163  scratchRSrcReg:  '$sgpr0_sgpr1_sgpr2_sgpr3'164  stackPtrOffsetReg: '$sgpr32'165  frameOffsetReg: '$sgpr33'166body:             |167  bb.0:168    ; CHECK-LABEL: name: spill_v32_undef169    ; CHECK: S_NOP 0, implicit undef $vgpr0170    SI_SPILL_V32_SAVE undef $vgpr0, %stack.0, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5)171    S_NOP 0, implicit undef $vgpr0172...173 174---175name: spill_v64_undef176tracksRegLiveness: true177stack:178  - { id: 0, type: spill-slot, size: 8, alignment: 4 }179machineFunctionInfo:180  scratchRSrcReg:  '$sgpr0_sgpr1_sgpr2_sgpr3'181  stackPtrOffsetReg: '$sgpr32'182  frameOffsetReg: '$sgpr33'183body:             |184  bb.0:185    ; CHECK-LABEL: name: spill_v64_undef186    ; CHECK: S_NOP 0, implicit undef $vgpr0_vgpr1187    SI_SPILL_V64_SAVE undef $vgpr0_vgpr1, %stack.0, $sgpr32, 0, implicit $exec :: (store (s64) into %stack.0, addrspace 5)188    S_NOP 0, implicit undef $vgpr0_vgpr1189...190