[clang] Fix crashes when passing VLA to va_arg (#119563)
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / insert-handle-flat-vmem-ds.mir
blobd89f306c96a36a2473bd44e629aa79ae74e3afb2
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=amdgcn -mcpu=polaris10 -run-pass si-pre-emit-peephole -verify-machineinstrs %s -o - | FileCheck %s
4 ---
6 name: skip_execz_flat
7 body: |
8   ; CHECK-LABEL: name: skip_execz_flat
9   ; CHECK: bb.0:
10   ; CHECK-NEXT:   successors: %bb.1(0x7fffffff)
11   ; CHECK-NEXT: {{  $}}
12   ; CHECK-NEXT: bb.1:
13   ; CHECK-NEXT:   successors: %bb.2(0x80000000)
14   ; CHECK-NEXT: {{  $}}
15   ; CHECK-NEXT:   $vgpr0 = V_MOV_B32_e32 0, implicit $exec
16   ; CHECK-NEXT:   FLAT_STORE_DWORD undef $vgpr1_vgpr2, $vgpr0, 0, 0, implicit $exec, implicit $flat_scr
17   ; CHECK-NEXT: {{  $}}
18   ; CHECK-NEXT: bb.2:
19   ; CHECK-NEXT:   S_ENDPGM 0
20   bb.0:
21     successors: %bb.1(0x70000000), %bb.2(0x00000001)
22     S_CBRANCH_EXECZ   %bb.2, implicit $exec
24   bb.1:
25     successors: %bb.2
26     $vgpr0 = V_MOV_B32_e32 0, implicit $exec
27     FLAT_STORE_DWORD undef $vgpr1_vgpr2, $vgpr0, 0, 0, implicit $exec, implicit $flat_scr
29   bb.2:
30     S_ENDPGM 0
31 ...
33 ---
35 name: skip_execz_mubuf
36 body: |
37   ; CHECK-LABEL: name: skip_execz_mubuf
38   ; CHECK: bb.0:
39   ; CHECK-NEXT:   successors: %bb.1(0x7fffffff)
40   ; CHECK-NEXT: {{  $}}
41   ; CHECK-NEXT: bb.1:
42   ; CHECK-NEXT:   successors: %bb.2(0x80000000)
43   ; CHECK-NEXT: {{  $}}
44   ; CHECK-NEXT:   $vgpr0 = V_MOV_B32_e32 0, implicit $exec
45   ; CHECK-NEXT:   BUFFER_STORE_DWORD_OFFSET $vgpr0, undef $sgpr0_sgpr1_sgpr2_sgpr3, undef $sgpr4, 0, 0, 0, implicit $exec
46   ; CHECK-NEXT: {{  $}}
47   ; CHECK-NEXT: bb.2:
48   ; CHECK-NEXT:   S_ENDPGM 0
49   bb.0:
50     successors: %bb.1(0x70000000), %bb.2(0x00000001)
51     S_CBRANCH_EXECZ  %bb.2, implicit $exec
53   bb.1:
54     successors: %bb.2
55     $vgpr0 = V_MOV_B32_e32 0, implicit $exec
56     BUFFER_STORE_DWORD_OFFSET $vgpr0, undef $sgpr0_sgpr1_sgpr2_sgpr3, undef $sgpr4, 0, 0, 0, implicit $exec
58   bb.2:
59     S_ENDPGM 0
60 ...
62 ---
64 name: skip_execz_ds
65 body: |
66   ; CHECK-LABEL: name: skip_execz_ds
67   ; CHECK: bb.0:
68   ; CHECK-NEXT:   successors: %bb.1(0x7fffffff)
69   ; CHECK-NEXT: {{  $}}
70   ; CHECK-NEXT: bb.1:
71   ; CHECK-NEXT:   successors: %bb.2(0x80000000)
72   ; CHECK-NEXT: {{  $}}
73   ; CHECK-NEXT:   $vgpr0 = V_MOV_B32_e32 0, implicit $exec
74   ; CHECK-NEXT:   DS_WRITE_B32 $vgpr0, $vgpr0, 0, 0, implicit $m0, implicit $exec
75   ; CHECK-NEXT: {{  $}}
76   ; CHECK-NEXT: bb.2:
77   ; CHECK-NEXT:   S_ENDPGM 0
78   bb.0:
79     successors: %bb.1(0x70000000), %bb.2(0x00000001)
80     S_CBRANCH_EXECZ %bb.2, implicit $exec
82   bb.1:
83     successors: %bb.2
84     $vgpr0 = V_MOV_B32_e32 0, implicit $exec
85     DS_WRITE_B32 $vgpr0, $vgpr0, 0, 0, implicit $m0, implicit $exec
87   bb.2:
88     S_ENDPGM 0
89 ...