1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -march=amdgcn -mcpu=polaris10 -run-pass si-pre-emit-peephole -amdgpu-skip-threshold=1 -verify-machineinstrs %s -o - | FileCheck %s 3 4--- 5 6name: skip_execz_flat 7body: | 8 ; CHECK-LABEL: name: skip_execz_flat 9 ; CHECK: bb.0: 10 ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 11 ; CHECK-NEXT: {{ $}} 12 ; CHECK-NEXT: S_CBRANCH_EXECZ %bb.2, implicit $exec 13 ; CHECK-NEXT: {{ $}} 14 ; CHECK-NEXT: bb.1: 15 ; CHECK-NEXT: successors: %bb.2(0x80000000) 16 ; CHECK-NEXT: {{ $}} 17 ; CHECK-NEXT: $vgpr0 = V_MOV_B32_e32 0, implicit $exec 18 ; CHECK-NEXT: FLAT_STORE_DWORD undef $vgpr1_vgpr2, $vgpr0, 0, 0, implicit $exec, implicit $flat_scr 19 ; CHECK-NEXT: {{ $}} 20 ; CHECK-NEXT: bb.2: 21 ; CHECK-NEXT: S_ENDPGM 0 22 bb.0: 23 successors: %bb.1, %bb.2 24 S_CBRANCH_EXECZ %bb.2, implicit $exec 25 26 bb.1: 27 successors: %bb.2 28 $vgpr0 = V_MOV_B32_e32 0, implicit $exec 29 FLAT_STORE_DWORD undef $vgpr1_vgpr2, $vgpr0, 0, 0, implicit $exec, implicit $flat_scr 30 31 bb.2: 32 S_ENDPGM 0 33... 34 35--- 36 37name: skip_execz_mubuf 38body: | 39 ; CHECK-LABEL: name: skip_execz_mubuf 40 ; CHECK: bb.0: 41 ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 42 ; CHECK-NEXT: {{ $}} 43 ; CHECK-NEXT: S_CBRANCH_EXECZ %bb.2, implicit $exec 44 ; CHECK-NEXT: {{ $}} 45 ; CHECK-NEXT: bb.1: 46 ; CHECK-NEXT: successors: %bb.2(0x80000000) 47 ; CHECK-NEXT: {{ $}} 48 ; CHECK-NEXT: $vgpr0 = V_MOV_B32_e32 0, implicit $exec 49 ; CHECK-NEXT: BUFFER_STORE_DWORD_OFFSET $vgpr0, undef $sgpr0_sgpr1_sgpr2_sgpr3, undef $sgpr4, 0, 0, 0, 0, implicit $exec 50 ; CHECK-NEXT: {{ $}} 51 ; CHECK-NEXT: bb.2: 52 ; CHECK-NEXT: S_ENDPGM 0 53 bb.0: 54 successors: %bb.1, %bb.2 55 S_CBRANCH_EXECZ %bb.2, implicit $exec 56 57 bb.1: 58 successors: %bb.2 59 $vgpr0 = V_MOV_B32_e32 0, implicit $exec 60 BUFFER_STORE_DWORD_OFFSET $vgpr0, undef $sgpr0_sgpr1_sgpr2_sgpr3, undef $sgpr4, 0, 0, 0, 0, implicit $exec 61 62 bb.2: 63 S_ENDPGM 0 64... 65 66--- 67 68name: skip_execz_ds 69body: | 70 ; CHECK-LABEL: name: skip_execz_ds 71 ; CHECK: bb.0: 72 ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 73 ; CHECK-NEXT: {{ $}} 74 ; CHECK-NEXT: S_CBRANCH_EXECZ %bb.2, implicit $exec 75 ; CHECK-NEXT: {{ $}} 76 ; CHECK-NEXT: bb.1: 77 ; CHECK-NEXT: successors: %bb.2(0x80000000) 78 ; CHECK-NEXT: {{ $}} 79 ; CHECK-NEXT: $vgpr0 = V_MOV_B32_e32 0, implicit $exec 80 ; CHECK-NEXT: DS_WRITE_B32 $vgpr0, $vgpr0, 0, 0, implicit $m0, implicit $exec 81 ; CHECK-NEXT: {{ $}} 82 ; CHECK-NEXT: bb.2: 83 ; CHECK-NEXT: S_ENDPGM 0 84 bb.0: 85 successors: %bb.1, %bb.2 86 S_CBRANCH_EXECZ %bb.2, implicit $exec 87 88 bb.1: 89 successors: %bb.2 90 $vgpr0 = V_MOV_B32_e32 0, implicit $exec 91 DS_WRITE_B32 $vgpr0, $vgpr0, 0, 0, implicit $m0, implicit $exec 92 93 bb.2: 94 S_ENDPGM 0 95... 96