137 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 < %s | FileCheck %s3 4define amdgpu_gfx [13 x i32] @issue130120() {5; CHECK-LABEL: issue130120:6; CHECK: ; %bb.0: ; %bb7; CHECK-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8; CHECK-NEXT: v_mov_b32_e32 v0, 09; CHECK-NEXT: s_movk_i32 s1, 0xf410; CHECK-NEXT: s_movk_i32 s2, 0xf811; CHECK-NEXT: s_movk_i32 s3, 0xfc12; CHECK-NEXT: s_movk_i32 s34, 0x10013; CHECK-NEXT: v_mov_b32_e32 v1, v014; CHECK-NEXT: s_movk_i32 s35, 0x10415; CHECK-NEXT: s_movk_i32 s36, 0x10816; CHECK-NEXT: s_movk_i32 s37, 0x11017; CHECK-NEXT: s_movk_i32 s38, 0x12018; CHECK-NEXT: s_add_i32 s0, s32, 0xf019; CHECK-NEXT: s_add_i32 s1, s32, s120; CHECK-NEXT: s_add_i32 s2, s32, s221; CHECK-NEXT: s_add_i32 s3, s32, s322; CHECK-NEXT: s_add_i32 s34, s32, s3423; CHECK-NEXT: s_add_i32 s35, s32, s3524; CHECK-NEXT: s_add_i32 s36, s32, s3625; CHECK-NEXT: s_add_i32 s37, s32, s3726; CHECK-NEXT: s_add_i32 s38, s32, s3827; CHECK-NEXT: s_or_b32 s39, s32, 428; CHECK-NEXT: s_or_b32 s40, s32, 829; CHECK-NEXT: s_or_b32 s41, s32, 1230; CHECK-NEXT: s_add_i32 s42, s32, 1631; CHECK-NEXT: s_add_i32 s43, s32, 2032; CHECK-NEXT: s_add_i32 s44, s32, 2433; CHECK-NEXT: s_mov_b32 s46, 134; CHECK-NEXT: s_movk_i32 s45, 0x99035; CHECK-NEXT: s_mov_b32 s48, 036; CHECK-NEXT: .LBB0_1: ; %bb337; CHECK-NEXT: ; =>This Inner Loop Header: Depth=138; CHECK-NEXT: s_cmp_eq_u32 s46, 039; CHECK-NEXT: s_mov_b32 s49, s4840; CHECK-NEXT: s_mov_b32 s50, s4841; CHECK-NEXT: s_cselect_b32 s51, 0, s142; CHECK-NEXT: s_cselect_b32 s55, 0, s3543; CHECK-NEXT: v_dual_mov_b32 v2, s48 :: v_dual_mov_b32 v3, s4944; CHECK-NEXT: s_cselect_b32 s52, 0, s245; CHECK-NEXT: s_cselect_b32 s56, 0, s3646; CHECK-NEXT: s_cselect_b32 vcc_lo, 0, s4347; CHECK-NEXT: v_mov_b32_e32 v4, s5048; CHECK-NEXT: s_cselect_b32 s47, s45, 0xf049; CHECK-NEXT: s_cselect_b32 s53, 0, s350; CHECK-NEXT: s_cselect_b32 s54, 0, s3451; CHECK-NEXT: s_cselect_b32 s57, 0, s3752; CHECK-NEXT: s_cselect_b32 s58, 0, s3853; CHECK-NEXT: s_cselect_b32 s59, 0, s054; CHECK-NEXT: s_cselect_b32 s60, 0, s3955; CHECK-NEXT: s_cselect_b32 s61, 0, s4056; CHECK-NEXT: s_cselect_b32 s62, 0, s4157; CHECK-NEXT: s_cselect_b32 s63, 0, s4258; CHECK-NEXT: s_cselect_b32 vcc_hi, 0, s4459; CHECK-NEXT: s_mov_b32 s46, s4860; CHECK-NEXT: scratch_store_b32 off, v0, s5161; CHECK-NEXT: scratch_store_b32 off, v0, s5262; CHECK-NEXT: scratch_store_b32 off, v0, s5363; CHECK-NEXT: scratch_store_b32 off, v0, s5464; CHECK-NEXT: scratch_store_b32 off, v0, s5565; CHECK-NEXT: scratch_store_b64 off, v[0:1], s5666; CHECK-NEXT: scratch_store_b32 off, v0, s5767; CHECK-NEXT: scratch_store_b32 off, v0, s4768; CHECK-NEXT: scratch_store_b96 off, v[2:4], s5869; CHECK-NEXT: scratch_store_b96 off, v[2:4], s5970; CHECK-NEXT: scratch_store_b32 off, v0, s6071; CHECK-NEXT: scratch_store_b32 off, v0, s6172; CHECK-NEXT: scratch_store_b32 off, v0, s6273; CHECK-NEXT: scratch_store_b32 off, v0, s6374; CHECK-NEXT: scratch_store_b32 off, v0, vcc_lo75; CHECK-NEXT: scratch_store_b32 off, v0, vcc_hi76; CHECK-NEXT: s_mov_b32 vcc_lo, exec_lo77; CHECK-NEXT: s_cbranch_vccnz .LBB0_178; CHECK-NEXT: ; %bb.2: ; %DummyReturnBlock79; CHECK-NEXT: s_setpc_b64 s[30:31]80bb:81 %i = alloca [8 x { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, { <3 x float>, float, <3 x float>, float }, float, i32, i32, i32, { i32, float, i32, i32, i32, i32, <2 x float>, i32, <3 x float>, <3 x float> }, i32, { i32, float, i32, i32, i32, i32, <2 x float>, i32, <3 x float>, <3 x float> }, i32, i32, i32, i32, i32, i32, i32, i32, i32 }], i32 0, align 16, addrspace(5)82 %i1 = getelementptr [8 x { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, { <3 x float>, float, <3 x float>, float }, float, i32, i32, i32, { i32, float, i32, i32, i32, i32, <2 x float>, i32, <3 x float>, <3 x float> }, i32, { i32, float, i32, i32, i32, i32, <2 x float>, i32, <3 x float>, <3 x float> }, i32, i32, i32, i32, i32, i32, i32, i32, i32 }], ptr addrspace(5) %i, i32 0, i32 0, i32 2083 %i2 = getelementptr [8 x { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, { <3 x float>, float, <3 x float>, float }, float, i32, i32, i32, { i32, float, i32, i32, i32, i32, <2 x float>, i32, <3 x float>, <3 x float> }, i32, { i32, float, i32, i32, i32, i32, <2 x float>, i32, <3 x float>, <3 x float> }, i32, i32, i32, i32, i32, i32, i32, i32, i32 }], ptr addrspace(5) %i, i32 0, i32 6, i32 2084 br label %bb385 86bb3: ; preds = %bb3, %bb87 %i4 = phi i32 [ 1, %bb ], [ 0, %bb3 ]88 %i5 = icmp eq i32 %i4, 089 %i6 = select i1 %i5, ptr addrspace(5) %i2, ptr addrspace(5) %i190 store i32 0, ptr addrspace(5) %i6, align 1691 %i7 = getelementptr { i32, float, i32, i32, i32, i32, <2 x float>, i32, <3 x float>, <3 x float> }, ptr addrspace(5) %i1, i32 0, i32 192 %i8 = select i1 %i5, ptr addrspace(5) null, ptr addrspace(5) %i793 store float 0.000000e+00, ptr addrspace(5) %i8, align 494 %i9 = getelementptr { i32, float, i32, i32, i32, i32, <2 x float>, i32, <3 x float>, <3 x float> }, ptr addrspace(5) %i1, i32 0, i32 295 %i10 = select i1 %i5, ptr addrspace(5) null, ptr addrspace(5) %i996 store i32 0, ptr addrspace(5) %i10, align 897 %i11 = getelementptr { i32, float, i32, i32, i32, i32, <2 x float>, i32, <3 x float>, <3 x float> }, ptr addrspace(5) %i1, i32 0, i32 398 %i12 = select i1 %i5, ptr addrspace(5) null, ptr addrspace(5) %i1199 store i32 0, ptr addrspace(5) %i12, align 4100 %i13 = getelementptr { i32, float, i32, i32, i32, i32, <2 x float>, i32, <3 x float>, <3 x float> }, ptr addrspace(5) %i1, i32 0, i32 4101 %i14 = select i1 %i5, ptr addrspace(5) null, ptr addrspace(5) %i13102 store i32 0, ptr addrspace(5) %i14, align 16103 %i15 = getelementptr { i32, float, i32, i32, i32, i32, <2 x float>, i32, <3 x float>, <3 x float> }, ptr addrspace(5) %i1, i32 0, i32 5104 %i16 = select i1 %i5, ptr addrspace(5) null, ptr addrspace(5) %i15105 store i32 0, ptr addrspace(5) %i16, align 4106 %i17 = getelementptr { i32, float, i32, i32, i32, i32, <2 x float>, i32, <3 x float>, <3 x float> }, ptr addrspace(5) %i1, i32 0, i32 6107 %i18 = select i1 %i5, ptr addrspace(5) null, ptr addrspace(5) %i17108 store <2 x float> zeroinitializer, ptr addrspace(5) %i18, align 8109 %i19 = getelementptr { i32, float, i32, i32, i32, i32, <2 x float>, i32, <3 x float>, <3 x float> }, ptr addrspace(5) %i1, i32 0, i32 7110 %i20 = select i1 %i5, ptr addrspace(5) null, ptr addrspace(5) %i19111 store i32 0, ptr addrspace(5) %i20, align 16112 %i21 = getelementptr { i32, float, i32, i32, i32, i32, <2 x float>, i32, <3 x float>, <3 x float> }, ptr addrspace(5) %i1, i32 0, i32 8113 %i22 = select i1 %i5, ptr addrspace(5) null, ptr addrspace(5) %i21114 store <3 x float> zeroinitializer, ptr addrspace(5) %i22, align 16115 %i23 = select i1 %i5, ptr addrspace(5) null, ptr addrspace(5) %i1116 store <3 x float> zeroinitializer, ptr addrspace(5) %i23, align 16117 %i24 = getelementptr { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, { <3 x float>, float, <3 x float>, float }, float, i32, i32, i32, { i32, float, i32, i32, i32, i32, <2 x float>, i32, <3 x float>, <3 x float> }, i32, { i32, float, i32, i32, i32, i32, <2 x float>, i32, <3 x float>, <3 x float> }, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, ptr addrspace(5) %i, i32 0, i32 1118 %i25 = select i1 %i5, ptr addrspace(5) null, ptr addrspace(5) %i24119 store i32 0, ptr addrspace(5) %i25, align 4120 %i26 = getelementptr { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, { <3 x float>, float, <3 x float>, float }, float, i32, i32, i32, { i32, float, i32, i32, i32, i32, <2 x float>, i32, <3 x float>, <3 x float> }, i32, { i32, float, i32, i32, i32, i32, <2 x float>, i32, <3 x float>, <3 x float> }, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, ptr addrspace(5) %i, i32 0, i32 2121 %i27 = select i1 %i5, ptr addrspace(5) null, ptr addrspace(5) %i26122 store i32 0, ptr addrspace(5) %i27, align 8123 %i28 = getelementptr { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, { <3 x float>, float, <3 x float>, float }, float, i32, i32, i32, { i32, float, i32, i32, i32, i32, <2 x float>, i32, <3 x float>, <3 x float> }, i32, { i32, float, i32, i32, i32, i32, <2 x float>, i32, <3 x float>, <3 x float> }, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, ptr addrspace(5) %i, i32 0, i32 3124 %i29 = select i1 %i5, ptr addrspace(5) null, ptr addrspace(5) %i28125 store i32 0, ptr addrspace(5) %i29, align 4126 %i30 = getelementptr { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, { <3 x float>, float, <3 x float>, float }, float, i32, i32, i32, { i32, float, i32, i32, i32, i32, <2 x float>, i32, <3 x float>, <3 x float> }, i32, { i32, float, i32, i32, i32, i32, <2 x float>, i32, <3 x float>, <3 x float> }, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, ptr addrspace(5) %i, i32 0, i32 4127 %i31 = select i1 %i5, ptr addrspace(5) null, ptr addrspace(5) %i30128 store i32 0, ptr addrspace(5) %i31, align 16129 %i32 = getelementptr { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, { <3 x float>, float, <3 x float>, float }, float, i32, i32, i32, { i32, float, i32, i32, i32, i32, <2 x float>, i32, <3 x float>, <3 x float> }, i32, { i32, float, i32, i32, i32, i32, <2 x float>, i32, <3 x float>, <3 x float> }, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, ptr addrspace(5) %i, i32 0, i32 5130 %i33 = select i1 %i5, ptr addrspace(5) null, ptr addrspace(5) %i32131 store i32 0, ptr addrspace(5) %i33, align 4132 %i34 = getelementptr { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, { <3 x float>, float, <3 x float>, float }, float, i32, i32, i32, { i32, float, i32, i32, i32, i32, <2 x float>, i32, <3 x float>, <3 x float> }, i32, { i32, float, i32, i32, i32, i32, <2 x float>, i32, <3 x float>, <3 x float> }, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, ptr addrspace(5) %i, i32 0, i32 6133 %i35 = select i1 %i5, ptr addrspace(5) null, ptr addrspace(5) %i34134 store i32 0, ptr addrspace(5) %i35, align 8135 br label %bb3136}137