[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / blender-no-live-segment-at-def-implicit-def.ll
bloba965a20244b4e7592580b53237c96fe33c911db6
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2
2 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1031 -verify-coalescing < %s | FileCheck %s
4 define amdgpu_kernel void @blender_no_live_segment_at_def_error(<4 x float> %extractVec358.i.i, i32 %cmp5.i.i.arg, float %i1.i, i32 %cmp221.i.i.arg, i32 %cmp262.i.i.arg, ptr addrspace(1) %arg) {
5 ; CHECK-LABEL: blender_no_live_segment_at_def_error:
6 ; CHECK:       ; %bb.0: ; %entry
7 ; CHECK-NEXT:    s_add_u32 s12, s12, s17
8 ; CHECK-NEXT:    s_mov_b32 s32, 0
9 ; CHECK-NEXT:    s_addc_u32 s13, s13, 0
10 ; CHECK-NEXT:    s_setreg_b32 hwreg(HW_REG_FLAT_SCR_LO), s12
11 ; CHECK-NEXT:    s_setreg_b32 hwreg(HW_REG_FLAT_SCR_HI), s13
12 ; CHECK-NEXT:    s_load_dwordx8 s[36:43], s[8:9], 0x0
13 ; CHECK-NEXT:    s_add_u32 s0, s0, s17
14 ; CHECK-NEXT:    s_addc_u32 s1, s1, 0
15 ; CHECK-NEXT:    s_mov_b32 s12, 0
16 ; CHECK-NEXT:    s_waitcnt lgkmcnt(0)
17 ; CHECK-NEXT:    s_cmp_lg_u32 s40, 0
18 ; CHECK-NEXT:    s_cbranch_scc1 .LBB0_8
19 ; CHECK-NEXT:  ; %bb.1: ; %if.end13.i.i
20 ; CHECK-NEXT:    s_cmp_eq_u32 s42, 0
21 ; CHECK-NEXT:    s_cbranch_scc1 .LBB0_4
22 ; CHECK-NEXT:  ; %bb.2: ; %if.else251.i.i
23 ; CHECK-NEXT:    s_cmp_lg_u32 s43, 0
24 ; CHECK-NEXT:    s_mov_b32 s17, 0
25 ; CHECK-NEXT:    s_cselect_b32 s12, -1, 0
26 ; CHECK-NEXT:    s_and_b32 vcc_lo, exec_lo, s12
27 ; CHECK-NEXT:    s_cbranch_vccz .LBB0_5
28 ; CHECK-NEXT:  ; %bb.3:
29 ; CHECK-NEXT:    s_mov_b32 s36, 0
30 ; CHECK-NEXT:    s_andn2_b32 vcc_lo, exec_lo, s12
31 ; CHECK-NEXT:    s_cbranch_vccz .LBB0_6
32 ; CHECK-NEXT:    s_branch .LBB0_7
33 ; CHECK-NEXT:  .LBB0_4:
34 ; CHECK-NEXT:    s_mov_b32 s14, s12
35 ; CHECK-NEXT:    s_mov_b32 s15, s12
36 ; CHECK-NEXT:    s_mov_b32 s13, s12
37 ; CHECK-NEXT:    s_mov_b64 s[38:39], s[14:15]
38 ; CHECK-NEXT:    s_mov_b64 s[36:37], s[12:13]
39 ; CHECK-NEXT:    s_branch .LBB0_7
40 ; CHECK-NEXT:  .LBB0_5: ; %if.then263.i.i
41 ; CHECK-NEXT:    v_cmp_lt_f32_e64 s12, s41, 0
42 ; CHECK-NEXT:    s_mov_b32 s36, 1.0
43 ; CHECK-NEXT:    s_mov_b32 s17, 0x7fc00000
44 ; CHECK-NEXT:    s_mov_b32 s37, s36
45 ; CHECK-NEXT:    s_mov_b32 s38, s36
46 ; CHECK-NEXT:    s_mov_b32 s39, s36
47 ; CHECK-NEXT:    s_andn2_b32 vcc_lo, exec_lo, s12
48 ; CHECK-NEXT:    s_cbranch_vccnz .LBB0_7
49 ; CHECK-NEXT:  .LBB0_6: ; %if.end273.i.i
50 ; CHECK-NEXT:    s_add_u32 s12, s8, 40
51 ; CHECK-NEXT:    s_addc_u32 s13, s9, 0
52 ; CHECK-NEXT:    s_getpc_b64 s[18:19]
53 ; CHECK-NEXT:    s_add_u32 s18, s18, _Z3dotDv3_fS_@gotpcrel32@lo+4
54 ; CHECK-NEXT:    s_addc_u32 s19, s19, _Z3dotDv3_fS_@gotpcrel32@hi+12
55 ; CHECK-NEXT:    v_lshlrev_b32_e32 v2, 20, v2
56 ; CHECK-NEXT:    s_load_dwordx2 s[18:19], s[18:19], 0x0
57 ; CHECK-NEXT:    v_lshlrev_b32_e32 v3, 10, v1
58 ; CHECK-NEXT:    v_add_f32_e64 v1, s17, s36
59 ; CHECK-NEXT:    s_mov_b64 s[34:35], s[8:9]
60 ; CHECK-NEXT:    s_mov_b64 s[8:9], s[12:13]
61 ; CHECK-NEXT:    s_mov_b32 s12, s14
62 ; CHECK-NEXT:    v_or3_b32 v31, v0, v3, v2
63 ; CHECK-NEXT:    v_mov_b32_e32 v0, v1
64 ; CHECK-NEXT:    v_mov_b32_e32 v1, 0
65 ; CHECK-NEXT:    v_mov_b32_e32 v2, 0
66 ; CHECK-NEXT:    s_mov_b32 s13, s15
67 ; CHECK-NEXT:    s_mov_b32 s14, s16
68 ; CHECK-NEXT:    s_mov_b32 s36, 0
69 ; CHECK-NEXT:    s_waitcnt lgkmcnt(0)
70 ; CHECK-NEXT:    s_swappc_b64 s[30:31], s[18:19]
71 ; CHECK-NEXT:    s_mov_b64 s[8:9], s[34:35]
72 ; CHECK-NEXT:    s_mov_b32 s37, s36
73 ; CHECK-NEXT:    s_mov_b32 s38, s36
74 ; CHECK-NEXT:    s_mov_b32 s39, s36
75 ; CHECK-NEXT:  .LBB0_7: ; %if.end294.i.i
76 ; CHECK-NEXT:    v_mov_b32_e32 v0, 0
77 ; CHECK-NEXT:    buffer_store_dword v0, off, s[0:3], 0 offset:12
78 ; CHECK-NEXT:    buffer_store_dword v0, off, s[0:3], 0 offset:8
79 ; CHECK-NEXT:    buffer_store_dword v0, off, s[0:3], 0 offset:4
80 ; CHECK-NEXT:    buffer_store_dword v0, off, s[0:3], 0
81 ; CHECK-NEXT:  .LBB0_8: ; %kernel_direct_lighting.exit
82 ; CHECK-NEXT:    s_load_dwordx2 s[4:5], s[8:9], 0x20
83 ; CHECK-NEXT:    v_mov_b32_e32 v0, s36
84 ; CHECK-NEXT:    v_mov_b32_e32 v4, 0
85 ; CHECK-NEXT:    v_mov_b32_e32 v1, s37
86 ; CHECK-NEXT:    v_mov_b32_e32 v2, s38
87 ; CHECK-NEXT:    v_mov_b32_e32 v3, s39
88 ; CHECK-NEXT:    s_waitcnt lgkmcnt(0)
89 ; CHECK-NEXT:    global_store_dwordx4 v4, v[0:3], s[4:5]
90 ; CHECK-NEXT:    s_endpgm
91 entry:
92   %cmp5.i.i = icmp eq i32 %cmp5.i.i.arg, 0
93   br i1 %cmp5.i.i, label %if.end13.i.i, label %kernel_direct_lighting.exit
95 if.end13.i.i:                                     ; preds = %entry
96   %cmp221.i.i = icmp eq i32 %cmp221.i.i.arg, 0
97   br i1 %cmp221.i.i, label %if.end294.i.i, label %if.else251.i.i
99 if.else251.i.i:                                   ; preds = %if.end13.i.i
100   %cmp262.i.i = icmp eq i32 %cmp262.i.i.arg, 0
101   br i1 %cmp262.i.i, label %if.then263.i.i, label %if.end273.i.i
103 if.then263.i.i:                                   ; preds = %if.else251.i.i
104   %cmp.i604.i.i = fcmp olt float %i1.i, 0.000000e+00
105   br i1 %cmp.i604.i.i, label %if.end273.i.i, label %if.end294.i.i
107 if.end273.i.i:                                    ; preds = %if.then263.i.i, %if.else251.i.i
108   %i = phi float [ 1.000000e+00, %if.then263.i.i ], [ 0.000000e+00, %if.else251.i.i ]
109   %i1 = phi float [ 0x7FF8000000000000, %if.then263.i.i ], [ 0.000000e+00, %if.else251.i.i ]
110   %extractVec278.i.i = insertelement <3 x float> zeroinitializer, float %i1, i64 0
111   %extractVec3.i.i.i = insertelement <3 x float> zeroinitializer, float %i, i64 0
112   %i3.i = fadd <3 x float> %extractVec278.i.i, %extractVec3.i.i.i
113   %call32.i.i.i = tail call float @_Z3dotDv3_fS_(<3 x float> %i3.i)
114   br label %if.end294.i.i
116 if.end294.i.i:                                    ; preds = %if.end273.i.i, %if.then263.i.i, %if.end13.i.i
117   %ls111.sroa.0.2.i = phi <4 x float> [ zeroinitializer, %if.end13.i.i ], [ zeroinitializer, %if.end273.i.i ], [ <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, %if.then263.i.i ]
118   store <4 x float> zeroinitializer, ptr addrspace(5) null, align 4
119   br label %kernel_direct_lighting.exit
121 kernel_direct_lighting.exit:                      ; preds = %if.end294.i.i, %entry
122   %ls111.sroa.0.3.i = phi <4 x float> [ %ls111.sroa.0.2.i, %if.end294.i.i ], [ %extractVec358.i.i, %entry ]
123   store <4 x float> %ls111.sroa.0.3.i, ptr addrspace(1) %arg, align 4
124   ret void
127 declare float @_Z3dotDv3_fS_(<3 x float>)