|
1 | 1 | # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5 |
2 | 2 | # RUN: llc -mtriple=amdgcn-amd-hsa -mcpu=gfx1031 -run-pass=si-fold-operands -o - %s | FileCheck %s |
3 | 3 | --- | |
4 | | - @global = external addrspace(3) global i32 |
5 | | - |
6 | 4 | define void @snork() { |
7 | | - bb: |
8 | | - br label %bb3 |
9 | | - |
10 | | - bb3: |
11 | | - br label %bb5 |
12 | | - |
13 | | - bb5: |
14 | 5 | ret void |
15 | 6 | } |
16 | 7 | ... |
17 | 8 | --- |
18 | | -name: snork |
19 | | -body: | |
20 | | - ; CHECK-LABEL: name: snork |
21 | | - ; CHECK: bb.0.bb: |
22 | | - ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) |
23 | | - ; CHECK-NEXT: {{ $}} |
24 | | - ; CHECK-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 0 |
25 | | - ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[S_MOV_B32_]], %subreg.sub0, [[S_MOV_B32_]], %subreg.sub1, [[S_MOV_B32_]], %subreg.sub2, [[S_MOV_B32_]], %subreg.sub3 |
26 | | - ; CHECK-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @global, implicit $exec |
27 | | - ; CHECK-NEXT: [[COPY:%[0-9]+]]:vreg_128 = COPY [[REG_SEQUENCE]] |
28 | | - ; CHECK-NEXT: DS_WRITE_B128_gfx9 killed [[V_MOV_B32_e32_]], [[COPY]], 32, 0, implicit $exec :: (store (s128) into `ptr addrspace(3) getelementptr inbounds nuw (i8, ptr addrspace(3) @global, i32 32)`, addrspace 3) |
29 | | - ; CHECK-NEXT: S_CMP_LG_U32 0, 0, implicit-def $scc |
30 | | - ; CHECK-NEXT: S_CBRANCH_SCC1 %bb.2, implicit $scc |
31 | | - ; CHECK-NEXT: S_BRANCH %bb.1 |
32 | | - ; CHECK-NEXT: {{ $}} |
33 | | - ; CHECK-NEXT: bb.1.bb3: |
34 | | - ; CHECK-NEXT: successors: %bb.2(0x80000000) |
35 | | - ; CHECK-NEXT: {{ $}} |
36 | | - ; CHECK-NEXT: bb.2.bb5: |
37 | | - ; CHECK-NEXT: SI_RETURN |
38 | | - bb.0.bb: |
39 | | - successors: %bb.1, %bb.2 |
40 | | -
|
41 | | - %9:sreg_32 = S_MOV_B32 0 |
42 | | - %10:sgpr_128 = REG_SEQUENCE %9, %subreg.sub0, %9, %subreg.sub1, %9, %subreg.sub2, %9, %subreg.sub3 |
43 | | - %11:vgpr_32 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @global, implicit $exec |
44 | | - %12:vreg_128 = COPY %10 |
45 | | - DS_WRITE_B128_gfx9 killed %11, %12, 32, 0, implicit $exec :: (store (s128) into `ptr addrspace(3) getelementptr inbounds nuw (i8, ptr addrspace(3) @global, i32 32)`, addrspace 3) |
46 | | - %15:sreg_32 = S_OR_B32 %10.sub0, %10.sub3, implicit-def dead $scc |
47 | | - S_CMP_LG_U32 killed %15, 0, implicit-def $scc |
48 | | - S_CBRANCH_SCC1 %bb.2, implicit $scc |
49 | | - S_BRANCH %bb.1 |
50 | | -
|
51 | | - bb.1.bb3: |
52 | | -
|
53 | | - bb.2.bb5: |
| 9 | +name: snork |
| 10 | +body: | |
| 11 | + bb.0: |
| 12 | + ; CHECK-LABEL: name: snork |
| 13 | + ; CHECK: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 0 |
| 14 | + ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE undef [[S_MOV_B32_]], %subreg.sub0, undef [[S_MOV_B32_]], %subreg.sub1, undef [[S_MOV_B32_]], %subreg.sub2, undef [[S_MOV_B32_]], %subreg.sub3 |
| 15 | + ; CHECK-NEXT: SI_RETURN |
| 16 | + %0:sreg_32 = S_MOV_B32 0 |
| 17 | + %1:sgpr_128 = REG_SEQUENCE undef %0, %subreg.sub0, undef %0, %subreg.sub1, undef %0, %subreg.sub2, undef %0, %subreg.sub3 |
| 18 | + %2:sreg_32 = S_OR_B32 undef %1.sub0, undef %1.sub3, implicit-def dead $scc |
54 | 19 | SI_RETURN |
55 | 20 | ... |
0 commit comments