; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 < %s | FileCheck %s -check-prefix=GCN

; This is a slightly modified IR from real case to make it concise.
define amdgpu_ps void @_amdgpu_ps_main(i32 inreg %PrimMask, <2 x float> %InterpCenter) #0 {
; GCN-LABEL: _amdgpu_ps_main:
; GCN:       ; %bb.0: ; %.entry
; GCN-NEXT:    s_mov_b32 s1, exec_lo
; GCN-NEXT:    s_wqm_b32 exec_lo, exec_lo
; GCN-NEXT:    s_mov_b32 m0, s0
; GCN-NEXT:    v_dual_mov_b32 v2, v1 :: v_dual_mov_b32 v3, v0
; GCN-NEXT:    lds_param_load v4, attr1.x wait_vdst:15
; GCN-NEXT:    lds_param_load v5, attr1.y wait_vdst:15
; GCN-NEXT:    lds_param_load v6, attr1.z wait_vdst:15
; GCN-NEXT:    lds_param_load v7, attr1.w wait_vdst:15
; GCN-NEXT:    v_mbcnt_lo_u32_b32 v8, -1, 0
; GCN-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_4) | instid1(VALU_DEP_4)
; GCN-NEXT:    v_mbcnt_hi_u32_b32 v8, -1, v8
; GCN-NEXT:    v_interp_p10_f32 v9, v5, v3, v5 wait_exp:2
; GCN-NEXT:    v_interp_p10_f32 v11, v6, v3, v6 wait_exp:1
; GCN-NEXT:    v_interp_p10_f32 v10, v7, v3, v7 wait_exp:0
; GCN-NEXT:    v_interp_p10_f32 v3, v4, v3, v4 wait_exp:7
; GCN-NEXT:    v_interp_p2_f32 v5, v5, v2, v9 wait_exp:7
; GCN-NEXT:    s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4)
; GCN-NEXT:    v_interp_p2_f32 v6, v6, v2, v11 wait_exp:7
; GCN-NEXT:    v_interp_p2_f32 v7, v7, v2, v10 wait_exp:7
; GCN-NEXT:    s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4)
; GCN-NEXT:    v_interp_p2_f32 v2, v4, v2, v3 wait_exp:7
; GCN-NEXT:    v_mov_b32_dpp v5, v5 dpp8:[1,0,3,2,5,4,7,6]
; GCN-NEXT:    v_and_b32_e32 v8, 1, v8
; GCN-NEXT:    s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_2)
; GCN-NEXT:    v_mov_b32_dpp v7, v7 dpp8:[1,0,3,2,5,4,7,6]
; GCN-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v8
; GCN-NEXT:    s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_3)
; GCN-NEXT:    v_dual_cndmask_b32 v3, v5, v6 :: v_dual_cndmask_b32 v4, v6, v5
; GCN-NEXT:    v_dual_cndmask_b32 v5, v2, v7 :: v_dual_cndmask_b32 v2, v7, v2
; GCN-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
; GCN-NEXT:    v_mov_b32_dpp v4, v4 dpp8:[1,0,3,2,5,4,7,6]
; GCN-NEXT:    v_mov_b32_dpp v5, v5 dpp8:[1,0,3,2,5,4,7,6]
; GCN-NEXT:    s_mov_b32 exec_lo, s1
; GCN-NEXT:    exp dual_src_blend0, v3, v2, off, off
; GCN-NEXT:    exp dual_src_blend1, v4, v5, off, off done
; GCN-NEXT:    s_endpgm
.entry:
  %InterpCenter.i0 = extractelement <2 x float> %InterpCenter, i64 0
  %InterpCenter.i1 = extractelement <2 x float> %InterpCenter, i64 1
  %i6 = call float @llvm.amdgcn.lds.param.load(i32 0, i32 1, i32 %PrimMask)
  %i7 = call float @llvm.amdgcn.lds.param.load(i32 1, i32 1, i32 %PrimMask)
  %i8 = call float @llvm.amdgcn.lds.param.load(i32 2, i32 1, i32 %PrimMask)
  %i9 = call float @llvm.amdgcn.lds.param.load(i32 3, i32 1, i32 %PrimMask)

  %i14 = call float @llvm.amdgcn.interp.inreg.p10(float %i8, float %InterpCenter.i0, float %i8)
  %i15 = call float @llvm.amdgcn.interp.inreg.p2(float %i8, float %InterpCenter.i1, float %i14)

  %i16 = call float @llvm.amdgcn.interp.inreg.p10(float %i7, float %InterpCenter.i0, float %i7)
  %i17 = call float @llvm.amdgcn.interp.inreg.p2(float %i7, float %InterpCenter.i1, float %i16)

  %i18 = call float @llvm.amdgcn.interp.inreg.p10(float %i6, float %InterpCenter.i0, float %i6)
  %i19 = call float @llvm.amdgcn.interp.inreg.p2(float %i6, float %InterpCenter.i1, float %i18)

  %i20 = call float @llvm.amdgcn.interp.inreg.p10(float %i9, float %InterpCenter.i0, float %i9)
  %i21 = call float @llvm.amdgcn.interp.inreg.p2(float %i9, float %InterpCenter.i1, float %i20)

  %i34 = call i32 @llvm.amdgcn.mbcnt.lo(i32 -1, i32 0)
  %i35 = call i32 @llvm.amdgcn.mbcnt.hi(i32 -1, i32 %i34)
  %i36 = and i32 %i35, 1
  %.not = icmp eq i32 %i36, 0

  %i37 = bitcast float %i15 to i32
  %i38 = bitcast float %i17 to i32
  %i39 = call i32 @llvm.amdgcn.mov.dpp8.i32(i32 %i38, i32 14570689)
  %i40 = select i1 %.not, i32 %i37, i32 %i39
  %i41 = bitcast i32 %i40 to float
  %i42 = select i1 %.not, i32 %i39, i32 %i37
  %i43 = call i32 @llvm.amdgcn.mov.dpp8.i32(i32 %i42, i32 14570689)
  %i44 = bitcast i32 %i43 to float

  %i45 = bitcast float %i19 to i32
  %i46 = bitcast float %i21 to i32
  %i47 = call i32 @llvm.amdgcn.mov.dpp8.i32(i32 %i46, i32 14570689)
  %i48 = select i1 %.not, i32 %i45, i32 %i47
  %i49 = bitcast i32 %i48 to float
  %i50 = select i1 %.not, i32 %i47, i32 %i45
  %i51 = call i32 @llvm.amdgcn.mov.dpp8.i32(i32 %i50, i32 14570689)
  %i52 = bitcast i32 %i51 to float
  call void @llvm.amdgcn.exp.f32(i32 21, i32 3, float %i41, float %i49, float poison, float poison, i1 false, i1 true)
  call void @llvm.amdgcn.exp.f32(i32 22, i32 3, float %i44, float %i52, float poison, float poison, i1 true, i1 true)
  ret void
}

declare i32 @llvm.amdgcn.mbcnt.lo(i32, i32) #2
declare i32 @llvm.amdgcn.mbcnt.hi(i32, i32) #2
declare i32 @llvm.amdgcn.mov.dpp8.i32(i32, i32 immarg) #3
declare void @llvm.amdgcn.exp.f32(i32 immarg, i32 immarg, float, float, float, float, i1 immarg, i1 immarg) #4
declare float @llvm.amdgcn.interp.inreg.p10(float, float, float) #1
declare float @llvm.amdgcn.interp.inreg.p2(float, float, float) #1
declare float @llvm.amdgcn.lds.param.load(i32 immarg, i32 immarg, i32) #1

attributes #0 = { nounwind }
attributes #1 = { nounwind readnone speculatable willreturn }
attributes #2 = { nounwind readnone willreturn }
attributes #3 = { convergent nounwind readnone willreturn }
attributes #4 = { inaccessiblememonly nounwind willreturn writeonly }
