================ @@ -1549,30 +1549,10 @@ define amdgpu_kernel void @multiple_uses_fneg_select_f64(double %x, double %y, i define amdgpu_kernel void @fnge_select_f32_multi_use_regression(float %.i2369) { ; GCN-LABEL: fnge_select_f32_multi_use_regression: ; GCN: ; %bb.0: ; %.entry -; GCN-NEXT: s_load_dword s0, s[4:5], 0x0 -; GCN-NEXT: s_waitcnt lgkmcnt(0) -; GCN-NEXT: v_cmp_nlt_f32_e64 s[0:1], s0, 0 -; GCN-NEXT: v_cndmask_b32_e64 v0, 0, 1, s[0:1] -; GCN-NEXT: v_cmp_ngt_f32_e32 vcc, 0, v0 -; GCN-NEXT: v_cndmask_b32_e32 v1, 0, v0, vcc -; GCN-NEXT: v_mul_f32_e64 v0, -v0, v1 -; GCN-NEXT: v_cmp_lt_f32_e32 vcc, 0, v0 -; GCN-NEXT: s_and_b64 vcc, exec, vcc ---------------- dtcxzyw wrote:
Looks like all instructions are removed by DCE. Can you fix this (in a separate PR) test by adding a user with side effect? ``` define amdgpu_kernel void @fnge_select_f32_multi_use_regression(float %.i2369, ptr addrspace(1) %dst) { .entry: %i = fcmp uge float %.i2369, 0.000000e+00 %.i2379 = select i1 %i, i32 1, i32 0 %.i0436 = bitcast i32 %.i2379 to float %.i0440 = fneg float %.i0436 %i1 = fcmp uge float %.i0436, 0.000000e+00 %.i2495 = select i1 %i1, i32 %.i2379, i32 0 %.i0552 = bitcast i32 %.i2495 to float %.i0592 = fmul float %.i0440, %.i0552 %.i0721 = fcmp ogt float %.i0592, 0.000000e+00 br i1 %.i0721, label %bb5, label %bb bb: ; preds = %.entry %i2 = call <2 x i32> @llvm.amdgcn.s.buffer.load.v2i32(<4 x i32> zeroinitializer, i32 1, i32 0) %i3 = shufflevector <2 x i32> %i2, <2 x i32> zeroinitializer, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef> %i4 = bitcast <4 x i32> %i3 to <4 x float> %.i0753 = extractelement <4 x float> %i4, i64 0 store float %.i0753, ptr addrspace(1) %dst br label %bb5 bb5: ; preds = %bb, %.entry ret void } ``` https://github.com/llvm/llvm-project/pull/97762 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits