brintos

brintos / llvm-project-archived public Read only

0
0
Text · 142.7 KiB · 9d3a4f3 Raw
2945 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx700 < %s | FileCheck -check-prefixes=GFX7,GFX7-SDAG %s3; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx801 < %s | FileCheck -check-prefixes=GFX8,GFX8-SDAG %s4; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx942 < %s | FileCheck -check-prefixes=GFX9,GFX9-SDAG %s5; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx1010 < %s | FileCheck -check-prefixes=GFX10,GFX10-SDAG %s6; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx1100 -mattr=+real-true16 < %s | FileCheck -check-prefixes=GFX11,GFX11-SDAG,GFX11-SDAG-TRUE16 %s7; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx1100 -mattr=-real-true16 < %s | FileCheck -check-prefixes=GFX11,GFX11-SDAG,GFX11-SDAG-FAKE16 %s8; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx1200 -mattr=+real-true16 < %s | FileCheck -check-prefixes=GFX12,GFX12-SDAG,GFX12-SDAG-TRUE16 %s9; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx1200 -mattr=-real-true16 < %s | FileCheck -check-prefixes=GFX12,GFX12-SDAG,GFX12-SDAG-FAKE16 %s10; RUN: llc -global-isel=1 -mtriple=amdgcn -mcpu=gfx1200 -mattr=+real-true16 < %s | FileCheck -check-prefixes=GFX12,GFX12-GISEL,GFX12-GISEL-TRUE16 %s11; RUN: llc -global-isel=1 -mtriple=amdgcn -mcpu=gfx1200 -mattr=-real-true16 < %s | FileCheck -check-prefixes=GFX12,GFX12-GISEL,GFX12-GISEL-FAKE16 %s12 13define half @test_vector_reduce_fminimum_v2half(<2 x half> %v) {14; GFX7-LABEL: test_vector_reduce_fminimum_v2half:15; GFX7:       ; %bb.0: ; %entry16; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)17; GFX7-NEXT:    v_cvt_f16_f32_e32 v1, v118; GFX7-NEXT:    v_cvt_f16_f32_e32 v0, v019; GFX7-NEXT:    v_mov_b32_e32 v2, 0x7fc0000020; GFX7-NEXT:    v_cvt_f32_f16_e32 v1, v121; GFX7-NEXT:    v_cvt_f32_f16_e32 v0, v022; GFX7-NEXT:    v_min_f32_e32 v3, v0, v123; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v124; GFX7-NEXT:    v_cndmask_b32_e32 v0, v2, v3, vcc25; GFX7-NEXT:    s_setpc_b64 s[30:31]26;27; GFX8-LABEL: test_vector_reduce_fminimum_v2half:28; GFX8:       ; %bb.0: ; %entry29; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)30; GFX8-NEXT:    v_lshrrev_b32_e32 v1, 16, v031; GFX8-NEXT:    v_min_f16_e32 v2, v0, v132; GFX8-NEXT:    v_mov_b32_e32 v3, 0x7e0033; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v134; GFX8-NEXT:    v_cndmask_b32_e32 v0, v3, v2, vcc35; GFX8-NEXT:    s_setpc_b64 s[30:31]36;37; GFX9-LABEL: test_vector_reduce_fminimum_v2half:38; GFX9:       ; %bb.0: ; %entry39; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)40; GFX9-NEXT:    v_min_f16_sdwa v1, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_141; GFX9-NEXT:    v_mov_b32_e32 v2, 0x7e0042; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v0 src0_sel:DWORD src1_sel:WORD_143; GFX9-NEXT:    s_nop 144; GFX9-NEXT:    v_cndmask_b32_e32 v0, v2, v1, vcc45; GFX9-NEXT:    s_setpc_b64 s[30:31]46;47; GFX10-LABEL: test_vector_reduce_fminimum_v2half:48; GFX10:       ; %bb.0: ; %entry49; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)50; GFX10-NEXT:    v_min_f16_sdwa v1, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_151; GFX10-NEXT:    v_cmp_o_f16_sdwa vcc_lo, v0, v0 src0_sel:DWORD src1_sel:WORD_152; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v1, vcc_lo53; GFX10-NEXT:    s_setpc_b64 s[30:31]54;55; GFX11-SDAG-TRUE16-LABEL: test_vector_reduce_fminimum_v2half:56; GFX11-SDAG-TRUE16:       ; %bb.0: ; %entry57; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)58; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0.l, v0.h59; GFX11-SDAG-TRUE16-NEXT:    v_min_f16_e32 v0.l, v0.l, v0.h60; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)61; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v0.l, 0x7e00, v0.l, vcc_lo62; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]63;64; GFX11-SDAG-FAKE16-LABEL: test_vector_reduce_fminimum_v2half:65; GFX11-SDAG-FAKE16:       ; %bb.0: ; %entry66; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)67; GFX11-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v1, 16, v068; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)69; GFX11-SDAG-FAKE16-NEXT:    v_min_f16_e32 v2, v0, v170; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0, v171; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v2, vcc_lo72; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]73;74; GFX12-SDAG-TRUE16-LABEL: test_vector_reduce_fminimum_v2half:75; GFX12-SDAG-TRUE16:       ; %bb.0: ; %entry76; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x077; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x078; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x079; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x080; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x081; GFX12-SDAG-TRUE16-NEXT:    v_minimum_f16 v0.l, v0.l, v0.h82; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]83;84; GFX12-SDAG-FAKE16-LABEL: test_vector_reduce_fminimum_v2half:85; GFX12-SDAG-FAKE16:       ; %bb.0: ; %entry86; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x087; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x088; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x089; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x090; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x091; GFX12-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v1, 16, v092; GFX12-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)93; GFX12-SDAG-FAKE16-NEXT:    v_minimum_f16 v0, v0, v194; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]95;96; GFX12-GISEL-TRUE16-LABEL: test_vector_reduce_fminimum_v2half:97; GFX12-GISEL-TRUE16:       ; %bb.0: ; %entry98; GFX12-GISEL-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x099; GFX12-GISEL-TRUE16-NEXT:    s_wait_expcnt 0x0100; GFX12-GISEL-TRUE16-NEXT:    s_wait_samplecnt 0x0101; GFX12-GISEL-TRUE16-NEXT:    s_wait_bvhcnt 0x0102; GFX12-GISEL-TRUE16-NEXT:    s_wait_kmcnt 0x0103; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v0.l, v0.l, v0.h104; GFX12-GISEL-TRUE16-NEXT:    s_setpc_b64 s[30:31]105;106; GFX12-GISEL-FAKE16-LABEL: test_vector_reduce_fminimum_v2half:107; GFX12-GISEL-FAKE16:       ; %bb.0: ; %entry108; GFX12-GISEL-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x0109; GFX12-GISEL-FAKE16-NEXT:    s_wait_expcnt 0x0110; GFX12-GISEL-FAKE16-NEXT:    s_wait_samplecnt 0x0111; GFX12-GISEL-FAKE16-NEXT:    s_wait_bvhcnt 0x0112; GFX12-GISEL-FAKE16-NEXT:    s_wait_kmcnt 0x0113; GFX12-GISEL-FAKE16-NEXT:    v_lshrrev_b32_e32 v1, 16, v0114; GFX12-GISEL-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)115; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v0, v0, v1116; GFX12-GISEL-FAKE16-NEXT:    s_setpc_b64 s[30:31]117entry:118  %res = call half @llvm.vector.reduce.fminimum.v2half(<2 x half> %v)119  ret half %res120}121 122define half @test_vector_reduce_fminimum_v3half(<3 x half> %v) {123; GFX7-LABEL: test_vector_reduce_fminimum_v3half:124; GFX7:       ; %bb.0: ; %entry125; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)126; GFX7-NEXT:    v_cvt_f16_f32_e32 v1, v1127; GFX7-NEXT:    v_cvt_f16_f32_e32 v0, v0128; GFX7-NEXT:    v_cvt_f16_f32_e32 v2, v2129; GFX7-NEXT:    v_mov_b32_e32 v4, 0x7fc00000130; GFX7-NEXT:    v_cvt_f32_f16_e32 v1, v1131; GFX7-NEXT:    v_cvt_f32_f16_e32 v0, v0132; GFX7-NEXT:    v_cvt_f32_f16_e32 v2, v2133; GFX7-NEXT:    v_min_f32_e32 v3, v0, v1134; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v1135; GFX7-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc136; GFX7-NEXT:    v_min_f32_e32 v1, v0, v2137; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v2138; GFX7-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc139; GFX7-NEXT:    s_setpc_b64 s[30:31]140;141; GFX8-LABEL: test_vector_reduce_fminimum_v3half:142; GFX8:       ; %bb.0: ; %entry143; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)144; GFX8-NEXT:    v_lshrrev_b32_e32 v2, 16, v0145; GFX8-NEXT:    v_min_f16_e32 v3, v0, v2146; GFX8-NEXT:    v_mov_b32_e32 v4, 0x7e00147; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v2148; GFX8-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc149; GFX8-NEXT:    v_min_f16_e32 v2, v0, v1150; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v1151; GFX8-NEXT:    v_cndmask_b32_e32 v0, v4, v2, vcc152; GFX8-NEXT:    s_setpc_b64 s[30:31]153;154; GFX9-LABEL: test_vector_reduce_fminimum_v3half:155; GFX9:       ; %bb.0: ; %entry156; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)157; GFX9-NEXT:    v_min_f16_sdwa v2, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1158; GFX9-NEXT:    v_mov_b32_e32 v3, 0x7e00159; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v0 src0_sel:DWORD src1_sel:WORD_1160; GFX9-NEXT:    s_nop 1161; GFX9-NEXT:    v_cndmask_b32_e32 v0, v3, v2, vcc162; GFX9-NEXT:    v_min_f16_e32 v2, v0, v1163; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v1164; GFX9-NEXT:    s_nop 1165; GFX9-NEXT:    v_cndmask_b32_e32 v0, v3, v2, vcc166; GFX9-NEXT:    s_setpc_b64 s[30:31]167;168; GFX10-LABEL: test_vector_reduce_fminimum_v3half:169; GFX10:       ; %bb.0: ; %entry170; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)171; GFX10-NEXT:    v_min_f16_sdwa v2, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1172; GFX10-NEXT:    v_cmp_o_f16_sdwa vcc_lo, v0, v0 src0_sel:DWORD src1_sel:WORD_1173; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v2, vcc_lo174; GFX10-NEXT:    v_min_f16_e32 v2, v0, v1175; GFX10-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0, v1176; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v2, vcc_lo177; GFX10-NEXT:    s_setpc_b64 s[30:31]178;179; GFX11-SDAG-TRUE16-LABEL: test_vector_reduce_fminimum_v3half:180; GFX11-SDAG-TRUE16:       ; %bb.0: ; %entry181; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)182; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0.l, v0.h183; GFX11-SDAG-TRUE16-NEXT:    v_min_f16_e32 v0.l, v0.l, v0.h184; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)185; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v0.l, 0x7e00, v0.l, vcc_lo186; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0.l, v1.l187; GFX11-SDAG-TRUE16-NEXT:    v_min_f16_e32 v0.l, v0.l, v1.l188; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)189; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v0.l, 0x7e00, v0.l, vcc_lo190; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]191;192; GFX11-SDAG-FAKE16-LABEL: test_vector_reduce_fminimum_v3half:193; GFX11-SDAG-FAKE16:       ; %bb.0: ; %entry194; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)195; GFX11-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v2, 16, v0196; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)197; GFX11-SDAG-FAKE16-NEXT:    v_min_f16_e32 v3, v0, v2198; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0, v2199; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v3, vcc_lo200; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)201; GFX11-SDAG-FAKE16-NEXT:    v_min_f16_e32 v2, v0, v1202; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0, v1203; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v2, vcc_lo204; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]205;206; GFX12-SDAG-TRUE16-LABEL: test_vector_reduce_fminimum_v3half:207; GFX12-SDAG-TRUE16:       ; %bb.0: ; %entry208; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x0209; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x0210; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x0211; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x0212; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x0213; GFX12-SDAG-TRUE16-NEXT:    v_mov_b16_e32 v1.h, 0x7c00214; GFX12-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)215; GFX12-SDAG-TRUE16-NEXT:    v_pk_minimum_f16 v0, v0, v1216; GFX12-SDAG-TRUE16-NEXT:    v_minimum_f16 v0.l, v0.l, v0.h217; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]218;219; GFX12-SDAG-FAKE16-LABEL: test_vector_reduce_fminimum_v3half:220; GFX12-SDAG-FAKE16:       ; %bb.0: ; %entry221; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x0222; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x0223; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x0224; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x0225; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x0226; GFX12-SDAG-FAKE16-NEXT:    s_movk_i32 s0, 0x7c00227; GFX12-SDAG-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)228; GFX12-SDAG-FAKE16-NEXT:    v_perm_b32 v1, s0, v1, 0x5040100229; GFX12-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)230; GFX12-SDAG-FAKE16-NEXT:    v_pk_minimum_f16 v0, v0, v1231; GFX12-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v1, 16, v0232; GFX12-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)233; GFX12-SDAG-FAKE16-NEXT:    v_minimum_f16 v0, v0, v1234; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]235;236; GFX12-GISEL-TRUE16-LABEL: test_vector_reduce_fminimum_v3half:237; GFX12-GISEL-TRUE16:       ; %bb.0: ; %entry238; GFX12-GISEL-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x0239; GFX12-GISEL-TRUE16-NEXT:    s_wait_expcnt 0x0240; GFX12-GISEL-TRUE16-NEXT:    s_wait_samplecnt 0x0241; GFX12-GISEL-TRUE16-NEXT:    s_wait_bvhcnt 0x0242; GFX12-GISEL-TRUE16-NEXT:    s_wait_kmcnt 0x0243; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v0.l, v0.l, v0.h244; GFX12-GISEL-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)245; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v0.l, v0.l, v1.l246; GFX12-GISEL-TRUE16-NEXT:    s_setpc_b64 s[30:31]247;248; GFX12-GISEL-FAKE16-LABEL: test_vector_reduce_fminimum_v3half:249; GFX12-GISEL-FAKE16:       ; %bb.0: ; %entry250; GFX12-GISEL-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x0251; GFX12-GISEL-FAKE16-NEXT:    s_wait_expcnt 0x0252; GFX12-GISEL-FAKE16-NEXT:    s_wait_samplecnt 0x0253; GFX12-GISEL-FAKE16-NEXT:    s_wait_bvhcnt 0x0254; GFX12-GISEL-FAKE16-NEXT:    s_wait_kmcnt 0x0255; GFX12-GISEL-FAKE16-NEXT:    v_lshrrev_b32_e32 v2, 16, v0256; GFX12-GISEL-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)257; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v0, v0, v2258; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v0, v0, v1259; GFX12-GISEL-FAKE16-NEXT:    s_setpc_b64 s[30:31]260entry:261  %res = call half @llvm.vector.reduce.fminimum.v3half(<3 x half> %v)262  ret half %res263}264 265define half @test_vector_reduce_fminimum_v4half(<4 x half> %v) {266; GFX7-LABEL: test_vector_reduce_fminimum_v4half:267; GFX7:       ; %bb.0: ; %entry268; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)269; GFX7-NEXT:    v_cvt_f16_f32_e32 v1, v1270; GFX7-NEXT:    v_cvt_f16_f32_e32 v0, v0271; GFX7-NEXT:    v_cvt_f16_f32_e32 v2, v2272; GFX7-NEXT:    v_cvt_f16_f32_e32 v3, v3273; GFX7-NEXT:    v_cvt_f32_f16_e32 v1, v1274; GFX7-NEXT:    v_cvt_f32_f16_e32 v0, v0275; GFX7-NEXT:    v_cvt_f32_f16_e32 v2, v2276; GFX7-NEXT:    v_cvt_f32_f16_e32 v3, v3277; GFX7-NEXT:    v_mov_b32_e32 v5, 0x7fc00000278; GFX7-NEXT:    v_min_f32_e32 v4, v0, v1279; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v1280; GFX7-NEXT:    v_cndmask_b32_e32 v0, v5, v4, vcc281; GFX7-NEXT:    v_min_f32_e32 v1, v0, v2282; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v2283; GFX7-NEXT:    v_cndmask_b32_e32 v0, v5, v1, vcc284; GFX7-NEXT:    v_min_f32_e32 v1, v0, v3285; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v3286; GFX7-NEXT:    v_cndmask_b32_e32 v0, v5, v1, vcc287; GFX7-NEXT:    s_setpc_b64 s[30:31]288;289; GFX8-LABEL: test_vector_reduce_fminimum_v4half:290; GFX8:       ; %bb.0: ; %entry291; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)292; GFX8-NEXT:    v_lshrrev_b32_e32 v3, 16, v0293; GFX8-NEXT:    v_min_f16_e32 v4, v0, v3294; GFX8-NEXT:    v_mov_b32_e32 v5, 0x7e00295; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v3296; GFX8-NEXT:    v_cndmask_b32_e32 v0, v5, v4, vcc297; GFX8-NEXT:    v_min_f16_e32 v3, v0, v1298; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v1299; GFX8-NEXT:    v_lshrrev_b32_e32 v2, 16, v1300; GFX8-NEXT:    v_cndmask_b32_e32 v0, v5, v3, vcc301; GFX8-NEXT:    v_min_f16_e32 v1, v0, v2302; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v2303; GFX8-NEXT:    v_cndmask_b32_e32 v0, v5, v1, vcc304; GFX8-NEXT:    s_setpc_b64 s[30:31]305;306; GFX9-LABEL: test_vector_reduce_fminimum_v4half:307; GFX9:       ; %bb.0: ; %entry308; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)309; GFX9-NEXT:    v_min_f16_sdwa v2, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1310; GFX9-NEXT:    v_mov_b32_e32 v3, 0x7e00311; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v0 src0_sel:DWORD src1_sel:WORD_1312; GFX9-NEXT:    s_nop 1313; GFX9-NEXT:    v_cndmask_b32_e32 v0, v3, v2, vcc314; GFX9-NEXT:    v_min_f16_e32 v2, v0, v1315; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v1316; GFX9-NEXT:    s_nop 1317; GFX9-NEXT:    v_cndmask_b32_e32 v0, v3, v2, vcc318; GFX9-NEXT:    v_min_f16_sdwa v2, v0, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1319; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v1 src0_sel:DWORD src1_sel:WORD_1320; GFX9-NEXT:    s_nop 1321; GFX9-NEXT:    v_cndmask_b32_e32 v0, v3, v2, vcc322; GFX9-NEXT:    s_setpc_b64 s[30:31]323;324; GFX10-LABEL: test_vector_reduce_fminimum_v4half:325; GFX10:       ; %bb.0: ; %entry326; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)327; GFX10-NEXT:    v_min_f16_sdwa v2, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1328; GFX10-NEXT:    v_cmp_o_f16_sdwa vcc_lo, v0, v0 src0_sel:DWORD src1_sel:WORD_1329; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v2, vcc_lo330; GFX10-NEXT:    v_min_f16_e32 v2, v0, v1331; GFX10-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0, v1332; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v2, vcc_lo333; GFX10-NEXT:    v_min_f16_sdwa v2, v0, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1334; GFX10-NEXT:    v_cmp_o_f16_sdwa vcc_lo, v0, v1 src0_sel:DWORD src1_sel:WORD_1335; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v2, vcc_lo336; GFX10-NEXT:    s_setpc_b64 s[30:31]337;338; GFX11-SDAG-TRUE16-LABEL: test_vector_reduce_fminimum_v4half:339; GFX11-SDAG-TRUE16:       ; %bb.0: ; %entry340; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)341; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0.l, v0.h342; GFX11-SDAG-TRUE16-NEXT:    v_min_f16_e32 v0.l, v0.l, v0.h343; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)344; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v0.l, 0x7e00, v0.l, vcc_lo345; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0.l, v1.l346; GFX11-SDAG-TRUE16-NEXT:    v_min_f16_e32 v0.l, v0.l, v1.l347; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)348; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v0.l, 0x7e00, v0.l, vcc_lo349; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0.l, v1.h350; GFX11-SDAG-TRUE16-NEXT:    v_min_f16_e32 v0.l, v0.l, v1.h351; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)352; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v0.l, 0x7e00, v0.l, vcc_lo353; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]354;355; GFX11-SDAG-FAKE16-LABEL: test_vector_reduce_fminimum_v4half:356; GFX11-SDAG-FAKE16:       ; %bb.0: ; %entry357; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)358; GFX11-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v2, 16, v0359; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)360; GFX11-SDAG-FAKE16-NEXT:    v_min_f16_e32 v3, v0, v2361; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0, v2362; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v3, vcc_lo363; GFX11-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v3, 16, v1364; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_1) | instid1(VALU_DEP_2)365; GFX11-SDAG-FAKE16-NEXT:    v_min_f16_e32 v2, v0, v1366; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0, v1367; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v2, vcc_lo368; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)369; GFX11-SDAG-FAKE16-NEXT:    v_min_f16_e32 v1, v0, v3370; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0, v3371; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v1, vcc_lo372; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]373;374; GFX12-SDAG-TRUE16-LABEL: test_vector_reduce_fminimum_v4half:375; GFX12-SDAG-TRUE16:       ; %bb.0: ; %entry376; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x0377; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x0378; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x0379; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x0380; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x0381; GFX12-SDAG-TRUE16-NEXT:    v_pk_minimum_f16 v0, v0, v1382; GFX12-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)383; GFX12-SDAG-TRUE16-NEXT:    v_minimum_f16 v0.l, v0.l, v0.h384; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]385;386; GFX12-SDAG-FAKE16-LABEL: test_vector_reduce_fminimum_v4half:387; GFX12-SDAG-FAKE16:       ; %bb.0: ; %entry388; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x0389; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x0390; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x0391; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x0392; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x0393; GFX12-SDAG-FAKE16-NEXT:    v_pk_minimum_f16 v0, v0, v1394; GFX12-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)395; GFX12-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v1, 16, v0396; GFX12-SDAG-FAKE16-NEXT:    v_minimum_f16 v0, v0, v1397; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]398;399; GFX12-GISEL-TRUE16-LABEL: test_vector_reduce_fminimum_v4half:400; GFX12-GISEL-TRUE16:       ; %bb.0: ; %entry401; GFX12-GISEL-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x0402; GFX12-GISEL-TRUE16-NEXT:    s_wait_expcnt 0x0403; GFX12-GISEL-TRUE16-NEXT:    s_wait_samplecnt 0x0404; GFX12-GISEL-TRUE16-NEXT:    s_wait_bvhcnt 0x0405; GFX12-GISEL-TRUE16-NEXT:    s_wait_kmcnt 0x0406; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v0.l, v0.l, v0.h407; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v0.h, v1.l, v1.h408; GFX12-GISEL-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)409; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v0.l, v0.l, v0.h410; GFX12-GISEL-TRUE16-NEXT:    s_setpc_b64 s[30:31]411;412; GFX12-GISEL-FAKE16-LABEL: test_vector_reduce_fminimum_v4half:413; GFX12-GISEL-FAKE16:       ; %bb.0: ; %entry414; GFX12-GISEL-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x0415; GFX12-GISEL-FAKE16-NEXT:    s_wait_expcnt 0x0416; GFX12-GISEL-FAKE16-NEXT:    s_wait_samplecnt 0x0417; GFX12-GISEL-FAKE16-NEXT:    s_wait_bvhcnt 0x0418; GFX12-GISEL-FAKE16-NEXT:    s_wait_kmcnt 0x0419; GFX12-GISEL-FAKE16-NEXT:    v_lshrrev_b32_e32 v2, 16, v0420; GFX12-GISEL-FAKE16-NEXT:    v_lshrrev_b32_e32 v3, 16, v1421; GFX12-GISEL-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)422; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v0, v0, v2423; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v1, v1, v3424; GFX12-GISEL-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)425; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v0, v0, v1426; GFX12-GISEL-FAKE16-NEXT:    s_setpc_b64 s[30:31]427entry:428  %res = call half @llvm.vector.reduce.fminimum.v4half(<4 x half> %v)429  ret half %res430}431 432define half @test_vector_reduce_fminimum_v8half(<8 x half> %v) {433; GFX7-LABEL: test_vector_reduce_fminimum_v8half:434; GFX7:       ; %bb.0: ; %entry435; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)436; GFX7-NEXT:    v_cvt_f16_f32_e32 v1, v1437; GFX7-NEXT:    v_cvt_f16_f32_e32 v0, v0438; GFX7-NEXT:    v_cvt_f16_f32_e32 v2, v2439; GFX7-NEXT:    v_cvt_f16_f32_e32 v3, v3440; GFX7-NEXT:    v_cvt_f32_f16_e32 v1, v1441; GFX7-NEXT:    v_cvt_f32_f16_e32 v0, v0442; GFX7-NEXT:    v_cvt_f16_f32_e32 v4, v4443; GFX7-NEXT:    v_cvt_f32_f16_e32 v2, v2444; GFX7-NEXT:    v_cvt_f16_f32_e32 v5, v5445; GFX7-NEXT:    v_cvt_f32_f16_e32 v3, v3446; GFX7-NEXT:    v_min_f32_e32 v8, v0, v1447; GFX7-NEXT:    v_mov_b32_e32 v9, 0x7fc00000448; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v1449; GFX7-NEXT:    v_cndmask_b32_e32 v0, v9, v8, vcc450; GFX7-NEXT:    v_cvt_f16_f32_e32 v6, v6451; GFX7-NEXT:    v_cvt_f32_f16_e32 v4, v4452; GFX7-NEXT:    v_min_f32_e32 v1, v0, v2453; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v2454; GFX7-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc455; GFX7-NEXT:    v_cvt_f16_f32_e32 v7, v7456; GFX7-NEXT:    v_cvt_f32_f16_e32 v5, v5457; GFX7-NEXT:    v_min_f32_e32 v1, v0, v3458; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v3459; GFX7-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc460; GFX7-NEXT:    v_cvt_f32_f16_e32 v6, v6461; GFX7-NEXT:    v_min_f32_e32 v1, v0, v4462; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v4463; GFX7-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc464; GFX7-NEXT:    v_cvt_f32_f16_e32 v7, v7465; GFX7-NEXT:    v_min_f32_e32 v1, v0, v5466; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v5467; GFX7-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc468; GFX7-NEXT:    v_min_f32_e32 v1, v0, v6469; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v6470; GFX7-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc471; GFX7-NEXT:    v_min_f32_e32 v1, v0, v7472; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v7473; GFX7-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc474; GFX7-NEXT:    s_setpc_b64 s[30:31]475;476; GFX8-LABEL: test_vector_reduce_fminimum_v8half:477; GFX8:       ; %bb.0: ; %entry478; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)479; GFX8-NEXT:    v_lshrrev_b32_e32 v7, 16, v0480; GFX8-NEXT:    v_min_f16_e32 v8, v0, v7481; GFX8-NEXT:    v_mov_b32_e32 v9, 0x7e00482; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v7483; GFX8-NEXT:    v_cndmask_b32_e32 v0, v9, v8, vcc484; GFX8-NEXT:    v_min_f16_e32 v7, v0, v1485; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v1486; GFX8-NEXT:    v_lshrrev_b32_e32 v6, 16, v1487; GFX8-NEXT:    v_cndmask_b32_e32 v0, v9, v7, vcc488; GFX8-NEXT:    v_min_f16_e32 v1, v0, v6489; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v6490; GFX8-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc491; GFX8-NEXT:    v_min_f16_e32 v1, v0, v2492; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v2493; GFX8-NEXT:    v_lshrrev_b32_e32 v5, 16, v2494; GFX8-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc495; GFX8-NEXT:    v_min_f16_e32 v1, v0, v5496; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v5497; GFX8-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc498; GFX8-NEXT:    v_min_f16_e32 v1, v0, v3499; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v3500; GFX8-NEXT:    v_lshrrev_b32_e32 v4, 16, v3501; GFX8-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc502; GFX8-NEXT:    v_min_f16_e32 v1, v0, v4503; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v4504; GFX8-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc505; GFX8-NEXT:    s_setpc_b64 s[30:31]506;507; GFX9-LABEL: test_vector_reduce_fminimum_v8half:508; GFX9:       ; %bb.0: ; %entry509; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)510; GFX9-NEXT:    v_pk_min_f16 v4, v0, v2511; GFX9-NEXT:    v_mov_b32_e32 v5, 0x7e00512; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v2513; GFX9-NEXT:    s_nop 1514; GFX9-NEXT:    v_cndmask_b32_e32 v6, v5, v4, vcc515; GFX9-NEXT:    v_lshrrev_b32_e32 v4, 16, v4516; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v2 src0_sel:WORD_1 src1_sel:WORD_1517; GFX9-NEXT:    s_nop 1518; GFX9-NEXT:    v_cndmask_b32_e32 v0, v5, v4, vcc519; GFX9-NEXT:    v_min_f16_e32 v2, v6, v0520; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v6, v0521; GFX9-NEXT:    s_nop 1522; GFX9-NEXT:    v_cndmask_b32_e32 v0, v5, v2, vcc523; GFX9-NEXT:    v_pk_min_f16 v2, v1, v3524; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v1, v3525; GFX9-NEXT:    s_nop 1526; GFX9-NEXT:    v_cndmask_b32_e32 v4, v5, v2, vcc527; GFX9-NEXT:    v_min_f16_e32 v6, v0, v4528; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v4529; GFX9-NEXT:    s_nop 1530; GFX9-NEXT:    v_cndmask_b32_e32 v0, v5, v6, vcc531; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v1, v3 src0_sel:WORD_1 src1_sel:WORD_1532; GFX9-NEXT:    s_nop 1533; GFX9-NEXT:    v_cndmask_b32_sdwa v1, v5, v2, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1534; GFX9-NEXT:    v_min_f16_e32 v2, v0, v1535; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v1536; GFX9-NEXT:    s_nop 1537; GFX9-NEXT:    v_cndmask_b32_e32 v0, v5, v2, vcc538; GFX9-NEXT:    s_setpc_b64 s[30:31]539;540; GFX10-LABEL: test_vector_reduce_fminimum_v8half:541; GFX10:       ; %bb.0: ; %entry542; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)543; GFX10-NEXT:    v_pk_min_f16 v4, v0, v2544; GFX10-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0, v2545; GFX10-NEXT:    v_lshrrev_b32_e32 v5, 16, v4546; GFX10-NEXT:    v_cndmask_b32_e32 v4, 0x7e00, v4, vcc_lo547; GFX10-NEXT:    v_cmp_o_f16_sdwa vcc_lo, v0, v2 src0_sel:WORD_1 src1_sel:WORD_1548; GFX10-NEXT:    v_pk_min_f16 v2, v1, v3549; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v5, vcc_lo550; GFX10-NEXT:    v_cmp_o_f16_e32 vcc_lo, v1, v3551; GFX10-NEXT:    v_min_f16_e32 v5, v4, v0552; GFX10-NEXT:    v_cndmask_b32_e32 v6, 0x7e00, v2, vcc_lo553; GFX10-NEXT:    v_cmp_o_f16_e32 vcc_lo, v4, v0554; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v5, vcc_lo555; GFX10-NEXT:    v_cmp_o_f16_sdwa vcc_lo, v1, v3 src0_sel:WORD_1 src1_sel:WORD_1556; GFX10-NEXT:    v_mov_b32_e32 v1, 0x7e00557; GFX10-NEXT:    v_min_f16_e32 v4, v0, v6558; GFX10-NEXT:    v_cmp_o_f16_e64 s4, v0, v6559; GFX10-NEXT:    v_cndmask_b32_sdwa v1, v1, v2, vcc_lo dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1560; GFX10-NEXT:    v_cndmask_b32_e64 v0, 0x7e00, v4, s4561; GFX10-NEXT:    v_min_f16_e32 v2, v0, v1562; GFX10-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0, v1563; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v2, vcc_lo564; GFX10-NEXT:    s_setpc_b64 s[30:31]565;566; GFX11-SDAG-TRUE16-LABEL: test_vector_reduce_fminimum_v8half:567; GFX11-SDAG-TRUE16:       ; %bb.0: ; %entry568; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)569; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0.l, v2.l570; GFX11-SDAG-TRUE16-NEXT:    v_pk_min_f16 v4, v0, v2571; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e64 s0, v0.h, v2.h572; GFX11-SDAG-TRUE16-NEXT:    v_pk_min_f16 v2, v1, v3573; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3)574; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v0.l, 0x7e00, v4.l, vcc_lo575; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v0.h, 0x7e00, v4.h, s0576; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v1.l, v3.l577; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_3) | instid1(VALU_DEP_3)578; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e64 s0, v0.l, v0.h579; GFX11-SDAG-TRUE16-NEXT:    v_min_f16_e32 v0.l, v0.l, v0.h580; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v0.h, 0x7e00, v2.l, vcc_lo581; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v1.h, v3.h582; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v0.l, 0x7e00, v0.l, s0583; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_2)584; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e64 s0, v0.l, v0.h585; GFX11-SDAG-TRUE16-NEXT:    v_min_f16_e32 v0.l, v0.l, v0.h586; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v0.h, 0x7e00, v2.h, vcc_lo587; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v0.l, 0x7e00, v0.l, s0588; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_1)589; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0.l, v0.h590; GFX11-SDAG-TRUE16-NEXT:    v_min_f16_e32 v0.l, v0.l, v0.h591; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v0.l, 0x7e00, v0.l, vcc_lo592; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]593;594; GFX11-SDAG-FAKE16-LABEL: test_vector_reduce_fminimum_v8half:595; GFX11-SDAG-FAKE16:       ; %bb.0: ; %entry596; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)597; GFX11-SDAG-FAKE16-NEXT:    v_pk_min_f16 v4, v0, v2598; GFX11-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v5, 16, v2599; GFX11-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v6, 16, v0600; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0, v2601; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_4) | instskip(SKIP_1) | instid1(VALU_DEP_4)602; GFX11-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v7, 16, v4603; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v4, vcc_lo604; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v6, v5605; GFX11-SDAG-FAKE16-NEXT:    v_pk_min_f16 v4, v1, v3606; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_4) | instskip(SKIP_2) | instid1(VALU_DEP_3)607; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v2, 0x7e00, v7, vcc_lo608; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v1, v3609; GFX11-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v1, 16, v1610; GFX11-SDAG-FAKE16-NEXT:    v_min_f16_e32 v5, v0, v2611; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v6, 0x7e00, v4, vcc_lo612; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0, v2613; GFX11-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v2, 16, v3614; GFX11-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v4, 16, v4615; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v5, vcc_lo616; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)617; GFX11-SDAG-FAKE16-NEXT:    v_min_f16_e32 v3, v0, v6618; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0, v6619; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v3, vcc_lo620; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v1, v2621; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v1, 0x7e00, v4, vcc_lo622; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)623; GFX11-SDAG-FAKE16-NEXT:    v_min_f16_e32 v2, v0, v1624; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0, v1625; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v2, vcc_lo626; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]627;628; GFX12-SDAG-TRUE16-LABEL: test_vector_reduce_fminimum_v8half:629; GFX12-SDAG-TRUE16:       ; %bb.0: ; %entry630; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x0631; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x0632; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x0633; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x0634; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x0635; GFX12-SDAG-TRUE16-NEXT:    v_pk_minimum_f16 v1, v1, v3636; GFX12-SDAG-TRUE16-NEXT:    v_pk_minimum_f16 v0, v0, v2637; GFX12-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)638; GFX12-SDAG-TRUE16-NEXT:    v_pk_minimum_f16 v0, v0, v1639; GFX12-SDAG-TRUE16-NEXT:    v_minimum_f16 v0.l, v0.l, v0.h640; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]641;642; GFX12-SDAG-FAKE16-LABEL: test_vector_reduce_fminimum_v8half:643; GFX12-SDAG-FAKE16:       ; %bb.0: ; %entry644; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x0645; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x0646; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x0647; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x0648; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x0649; GFX12-SDAG-FAKE16-NEXT:    v_pk_minimum_f16 v1, v1, v3650; GFX12-SDAG-FAKE16-NEXT:    v_pk_minimum_f16 v0, v0, v2651; GFX12-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)652; GFX12-SDAG-FAKE16-NEXT:    v_pk_minimum_f16 v0, v0, v1653; GFX12-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v1, 16, v0654; GFX12-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)655; GFX12-SDAG-FAKE16-NEXT:    v_minimum_f16 v0, v0, v1656; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]657;658; GFX12-GISEL-TRUE16-LABEL: test_vector_reduce_fminimum_v8half:659; GFX12-GISEL-TRUE16:       ; %bb.0: ; %entry660; GFX12-GISEL-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x0661; GFX12-GISEL-TRUE16-NEXT:    s_wait_expcnt 0x0662; GFX12-GISEL-TRUE16-NEXT:    s_wait_samplecnt 0x0663; GFX12-GISEL-TRUE16-NEXT:    s_wait_bvhcnt 0x0664; GFX12-GISEL-TRUE16-NEXT:    s_wait_kmcnt 0x0665; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v0.l, v0.l, v0.h666; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v0.h, v1.l, v1.h667; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v1.l, v2.l, v2.h668; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v1.h, v3.l, v3.h669; GFX12-GISEL-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)670; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v0.l, v0.l, v0.h671; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v0.h, v1.l, v1.h672; GFX12-GISEL-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)673; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v0.l, v0.l, v0.h674; GFX12-GISEL-TRUE16-NEXT:    s_setpc_b64 s[30:31]675;676; GFX12-GISEL-FAKE16-LABEL: test_vector_reduce_fminimum_v8half:677; GFX12-GISEL-FAKE16:       ; %bb.0: ; %entry678; GFX12-GISEL-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x0679; GFX12-GISEL-FAKE16-NEXT:    s_wait_expcnt 0x0680; GFX12-GISEL-FAKE16-NEXT:    s_wait_samplecnt 0x0681; GFX12-GISEL-FAKE16-NEXT:    s_wait_bvhcnt 0x0682; GFX12-GISEL-FAKE16-NEXT:    s_wait_kmcnt 0x0683; GFX12-GISEL-FAKE16-NEXT:    v_lshrrev_b32_e32 v4, 16, v0684; GFX12-GISEL-FAKE16-NEXT:    v_lshrrev_b32_e32 v5, 16, v1685; GFX12-GISEL-FAKE16-NEXT:    v_lshrrev_b32_e32 v6, 16, v2686; GFX12-GISEL-FAKE16-NEXT:    v_lshrrev_b32_e32 v7, 16, v3687; GFX12-GISEL-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4)688; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v0, v0, v4689; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v1, v1, v5690; GFX12-GISEL-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4)691; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v2, v2, v6692; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v3, v3, v7693; GFX12-GISEL-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)694; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v0, v0, v1695; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v1, v2, v3696; GFX12-GISEL-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)697; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v0, v0, v1698; GFX12-GISEL-FAKE16-NEXT:    s_setpc_b64 s[30:31]699entry:700  %res = call half @llvm.vector.reduce.fminimum.v8half(<8 x half> %v)701  ret half %res702}703 704define half @test_vector_reduce_fminimum_v16half(<16 x half> %v) {705; GFX7-LABEL: test_vector_reduce_fminimum_v16half:706; GFX7:       ; %bb.0: ; %entry707; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)708; GFX7-NEXT:    v_cvt_f16_f32_e32 v1, v1709; GFX7-NEXT:    v_cvt_f16_f32_e32 v0, v0710; GFX7-NEXT:    v_cvt_f16_f32_e32 v2, v2711; GFX7-NEXT:    v_cvt_f16_f32_e32 v3, v3712; GFX7-NEXT:    v_cvt_f32_f16_e32 v1, v1713; GFX7-NEXT:    v_cvt_f32_f16_e32 v0, v0714; GFX7-NEXT:    v_cvt_f16_f32_e32 v4, v4715; GFX7-NEXT:    v_cvt_f32_f16_e32 v2, v2716; GFX7-NEXT:    v_cvt_f16_f32_e32 v5, v5717; GFX7-NEXT:    v_cvt_f32_f16_e32 v3, v3718; GFX7-NEXT:    v_min_f32_e32 v16, v0, v1719; GFX7-NEXT:    v_mov_b32_e32 v17, 0x7fc00000720; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v1721; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v16, vcc722; GFX7-NEXT:    v_cvt_f16_f32_e32 v6, v6723; GFX7-NEXT:    v_cvt_f32_f16_e32 v4, v4724; GFX7-NEXT:    v_min_f32_e32 v1, v0, v2725; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v2726; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc727; GFX7-NEXT:    v_cvt_f16_f32_e32 v7, v7728; GFX7-NEXT:    v_cvt_f32_f16_e32 v5, v5729; GFX7-NEXT:    v_min_f32_e32 v1, v0, v3730; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v3731; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc732; GFX7-NEXT:    v_cvt_f16_f32_e32 v8, v8733; GFX7-NEXT:    v_cvt_f32_f16_e32 v6, v6734; GFX7-NEXT:    v_min_f32_e32 v1, v0, v4735; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v4736; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc737; GFX7-NEXT:    v_cvt_f16_f32_e32 v9, v9738; GFX7-NEXT:    v_cvt_f32_f16_e32 v7, v7739; GFX7-NEXT:    v_min_f32_e32 v1, v0, v5740; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v5741; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc742; GFX7-NEXT:    v_cvt_f16_f32_e32 v10, v10743; GFX7-NEXT:    v_cvt_f32_f16_e32 v8, v8744; GFX7-NEXT:    v_min_f32_e32 v1, v0, v6745; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v6746; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc747; GFX7-NEXT:    v_cvt_f16_f32_e32 v11, v11748; GFX7-NEXT:    v_cvt_f32_f16_e32 v9, v9749; GFX7-NEXT:    v_min_f32_e32 v1, v0, v7750; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v7751; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc752; GFX7-NEXT:    v_cvt_f16_f32_e32 v12, v12753; GFX7-NEXT:    v_cvt_f32_f16_e32 v10, v10754; GFX7-NEXT:    v_min_f32_e32 v1, v0, v8755; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v8756; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc757; GFX7-NEXT:    v_cvt_f16_f32_e32 v13, v13758; GFX7-NEXT:    v_cvt_f32_f16_e32 v11, v11759; GFX7-NEXT:    v_min_f32_e32 v1, v0, v9760; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v9761; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc762; GFX7-NEXT:    v_cvt_f16_f32_e32 v14, v14763; GFX7-NEXT:    v_cvt_f32_f16_e32 v12, v12764; GFX7-NEXT:    v_min_f32_e32 v1, v0, v10765; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v10766; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc767; GFX7-NEXT:    v_cvt_f16_f32_e32 v15, v15768; GFX7-NEXT:    v_cvt_f32_f16_e32 v13, v13769; GFX7-NEXT:    v_min_f32_e32 v1, v0, v11770; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v11771; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc772; GFX7-NEXT:    v_cvt_f32_f16_e32 v14, v14773; GFX7-NEXT:    v_min_f32_e32 v1, v0, v12774; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v12775; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc776; GFX7-NEXT:    v_cvt_f32_f16_e32 v15, v15777; GFX7-NEXT:    v_min_f32_e32 v1, v0, v13778; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v13779; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc780; GFX7-NEXT:    v_min_f32_e32 v1, v0, v14781; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v14782; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc783; GFX7-NEXT:    v_min_f32_e32 v1, v0, v15784; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v15785; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc786; GFX7-NEXT:    s_setpc_b64 s[30:31]787;788; GFX8-LABEL: test_vector_reduce_fminimum_v16half:789; GFX8:       ; %bb.0: ; %entry790; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)791; GFX8-NEXT:    v_lshrrev_b32_e32 v15, 16, v0792; GFX8-NEXT:    v_min_f16_e32 v16, v0, v15793; GFX8-NEXT:    v_mov_b32_e32 v17, 0x7e00794; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v15795; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v16, vcc796; GFX8-NEXT:    v_min_f16_e32 v15, v0, v1797; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v1798; GFX8-NEXT:    v_lshrrev_b32_e32 v14, 16, v1799; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v15, vcc800; GFX8-NEXT:    v_min_f16_e32 v1, v0, v14801; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v14802; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc803; GFX8-NEXT:    v_min_f16_e32 v1, v0, v2804; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v2805; GFX8-NEXT:    v_lshrrev_b32_e32 v13, 16, v2806; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc807; GFX8-NEXT:    v_min_f16_e32 v1, v0, v13808; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v13809; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc810; GFX8-NEXT:    v_min_f16_e32 v1, v0, v3811; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v3812; GFX8-NEXT:    v_lshrrev_b32_e32 v12, 16, v3813; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc814; GFX8-NEXT:    v_min_f16_e32 v1, v0, v12815; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v12816; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc817; GFX8-NEXT:    v_min_f16_e32 v1, v0, v4818; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v4819; GFX8-NEXT:    v_lshrrev_b32_e32 v11, 16, v4820; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc821; GFX8-NEXT:    v_min_f16_e32 v1, v0, v11822; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v11823; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc824; GFX8-NEXT:    v_min_f16_e32 v1, v0, v5825; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v5826; GFX8-NEXT:    v_lshrrev_b32_e32 v10, 16, v5827; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc828; GFX8-NEXT:    v_min_f16_e32 v1, v0, v10829; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v10830; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc831; GFX8-NEXT:    v_min_f16_e32 v1, v0, v6832; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v6833; GFX8-NEXT:    v_lshrrev_b32_e32 v9, 16, v6834; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc835; GFX8-NEXT:    v_min_f16_e32 v1, v0, v9836; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v9837; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc838; GFX8-NEXT:    v_min_f16_e32 v1, v0, v7839; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v7840; GFX8-NEXT:    v_lshrrev_b32_e32 v8, 16, v7841; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc842; GFX8-NEXT:    v_min_f16_e32 v1, v0, v8843; GFX8-NEXT:    v_cmp_o_f16_e32 vcc, v0, v8844; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc845; GFX8-NEXT:    s_setpc_b64 s[30:31]846;847; GFX9-LABEL: test_vector_reduce_fminimum_v16half:848; GFX9:       ; %bb.0: ; %entry849; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)850; GFX9-NEXT:    v_pk_min_f16 v8, v2, v6851; GFX9-NEXT:    v_mov_b32_e32 v9, 0x7e00852; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v2, v6853; GFX9-NEXT:    s_mov_b32 s0, 0x5040100854; GFX9-NEXT:    s_nop 0855; GFX9-NEXT:    v_cndmask_b32_e32 v10, v9, v8, vcc856; GFX9-NEXT:    v_lshrrev_b32_e32 v8, 16, v8857; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v2, v6 src0_sel:WORD_1 src1_sel:WORD_1858; GFX9-NEXT:    s_nop 1859; GFX9-NEXT:    v_cndmask_b32_e32 v2, v9, v8, vcc860; GFX9-NEXT:    v_pk_min_f16 v8, v0, v4861; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v4862; GFX9-NEXT:    v_perm_b32 v6, v2, v10, s0863; GFX9-NEXT:    s_nop 0864; GFX9-NEXT:    v_cndmask_b32_e32 v11, v9, v8, vcc865; GFX9-NEXT:    v_lshrrev_b32_e32 v8, 16, v8866; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v4 src0_sel:WORD_1 src1_sel:WORD_1867; GFX9-NEXT:    s_nop 1868; GFX9-NEXT:    v_cndmask_b32_e32 v0, v9, v8, vcc869; GFX9-NEXT:    v_perm_b32 v4, v0, v11, s0870; GFX9-NEXT:    v_pk_min_f16 v4, v4, v6871; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v11, v10872; GFX9-NEXT:    s_nop 1873; GFX9-NEXT:    v_cndmask_b32_e32 v6, v9, v4, vcc874; GFX9-NEXT:    v_lshrrev_b32_e32 v4, 16, v4875; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v2876; GFX9-NEXT:    s_nop 1877; GFX9-NEXT:    v_cndmask_b32_e32 v0, v9, v4, vcc878; GFX9-NEXT:    v_min_f16_e32 v2, v6, v0879; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v6, v0880; GFX9-NEXT:    v_pk_min_f16 v6, v1, v5881; GFX9-NEXT:    s_nop 0882; GFX9-NEXT:    v_cndmask_b32_e32 v0, v9, v2, vcc883; GFX9-NEXT:    v_pk_min_f16 v2, v3, v7884; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v3, v7885; GFX9-NEXT:    s_nop 1886; GFX9-NEXT:    v_cndmask_b32_e32 v4, v9, v2, vcc887; GFX9-NEXT:    v_lshrrev_b32_e32 v2, 16, v2888; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v3, v7 src0_sel:WORD_1 src1_sel:WORD_1889; GFX9-NEXT:    s_nop 1890; GFX9-NEXT:    v_cndmask_b32_e32 v2, v9, v2, vcc891; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v1, v5892; GFX9-NEXT:    v_perm_b32 v3, v2, v4, s0893; GFX9-NEXT:    s_nop 0894; GFX9-NEXT:    v_cndmask_b32_e32 v7, v9, v6, vcc895; GFX9-NEXT:    v_lshrrev_b32_e32 v6, 16, v6896; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v1, v5 src0_sel:WORD_1 src1_sel:WORD_1897; GFX9-NEXT:    s_nop 1898; GFX9-NEXT:    v_cndmask_b32_e32 v1, v9, v6, vcc899; GFX9-NEXT:    v_perm_b32 v5, v1, v7, s0900; GFX9-NEXT:    v_pk_min_f16 v3, v5, v3901; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v7, v4902; GFX9-NEXT:    s_nop 1903; GFX9-NEXT:    v_cndmask_b32_e32 v4, v9, v3, vcc904; GFX9-NEXT:    v_min_f16_e32 v5, v0, v4905; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v4906; GFX9-NEXT:    s_nop 1907; GFX9-NEXT:    v_cndmask_b32_e32 v0, v9, v5, vcc908; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v1, v2909; GFX9-NEXT:    s_nop 1910; GFX9-NEXT:    v_cndmask_b32_sdwa v1, v9, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1911; GFX9-NEXT:    v_min_f16_e32 v2, v0, v1912; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v1913; GFX9-NEXT:    s_nop 1914; GFX9-NEXT:    v_cndmask_b32_e32 v0, v9, v2, vcc915; GFX9-NEXT:    s_setpc_b64 s[30:31]916;917; GFX10-LABEL: test_vector_reduce_fminimum_v16half:918; GFX10:       ; %bb.0: ; %entry919; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)920; GFX10-NEXT:    v_pk_min_f16 v8, v2, v6921; GFX10-NEXT:    v_cmp_o_f16_e32 vcc_lo, v2, v6922; GFX10-NEXT:    v_pk_min_f16 v9, v0, v4923; GFX10-NEXT:    v_lshrrev_b32_e32 v10, 16, v8924; GFX10-NEXT:    v_cndmask_b32_e32 v8, 0x7e00, v8, vcc_lo925; GFX10-NEXT:    v_cmp_o_f16_sdwa vcc_lo, v2, v6 src0_sel:WORD_1 src1_sel:WORD_1926; GFX10-NEXT:    v_lshrrev_b32_e32 v11, 16, v9927; GFX10-NEXT:    v_cndmask_b32_e32 v2, 0x7e00, v10, vcc_lo928; GFX10-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0, v4929; GFX10-NEXT:    v_cndmask_b32_e32 v6, 0x7e00, v9, vcc_lo930; GFX10-NEXT:    v_cmp_o_f16_sdwa vcc_lo, v0, v4 src0_sel:WORD_1 src1_sel:WORD_1931; GFX10-NEXT:    v_pk_min_f16 v9, v3, v7932; GFX10-NEXT:    v_perm_b32 v4, v2, v8, 0x5040100933; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v11, vcc_lo934; GFX10-NEXT:    v_cmp_o_f16_e32 vcc_lo, v3, v7935; GFX10-NEXT:    v_lshrrev_b32_e32 v12, 16, v9936; GFX10-NEXT:    v_pk_min_f16 v11, v1, v5937; GFX10-NEXT:    v_perm_b32 v10, v0, v6, 0x5040100938; GFX10-NEXT:    v_cndmask_b32_e32 v9, 0x7e00, v9, vcc_lo939; GFX10-NEXT:    v_cmp_o_f16_sdwa vcc_lo, v3, v7 src0_sel:WORD_1 src1_sel:WORD_1940; GFX10-NEXT:    v_pk_min_f16 v4, v10, v4941; GFX10-NEXT:    v_lshrrev_b32_e32 v10, 16, v11942; GFX10-NEXT:    v_cndmask_b32_e32 v3, 0x7e00, v12, vcc_lo943; GFX10-NEXT:    v_cmp_o_f16_e32 vcc_lo, v1, v5944; GFX10-NEXT:    v_cndmask_b32_e32 v7, 0x7e00, v11, vcc_lo945; GFX10-NEXT:    v_cmp_o_f16_sdwa vcc_lo, v1, v5 src0_sel:WORD_1 src1_sel:WORD_1946; GFX10-NEXT:    v_lshrrev_b32_e32 v5, 16, v4947; GFX10-NEXT:    v_cndmask_b32_e32 v1, 0x7e00, v10, vcc_lo948; GFX10-NEXT:    v_cmp_o_f16_e32 vcc_lo, v6, v8949; GFX10-NEXT:    v_perm_b32 v6, v3, v9, 0x5040100950; GFX10-NEXT:    v_perm_b32 v8, v1, v7, 0x5040100951; GFX10-NEXT:    v_cndmask_b32_e32 v4, 0x7e00, v4, vcc_lo952; GFX10-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0, v2953; GFX10-NEXT:    v_pk_min_f16 v2, v8, v6954; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v5, vcc_lo955; GFX10-NEXT:    v_cmp_o_f16_e32 vcc_lo, v7, v9956; GFX10-NEXT:    v_min_f16_e32 v5, v4, v0957; GFX10-NEXT:    v_cndmask_b32_e32 v6, 0x7e00, v2, vcc_lo958; GFX10-NEXT:    v_cmp_o_f16_e32 vcc_lo, v4, v0959; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v5, vcc_lo960; GFX10-NEXT:    v_cmp_o_f16_e32 vcc_lo, v1, v3961; GFX10-NEXT:    v_mov_b32_e32 v1, 0x7e00962; GFX10-NEXT:    v_min_f16_e32 v4, v0, v6963; GFX10-NEXT:    v_cmp_o_f16_e64 s4, v0, v6964; GFX10-NEXT:    v_cndmask_b32_sdwa v1, v1, v2, vcc_lo dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1965; GFX10-NEXT:    v_cndmask_b32_e64 v0, 0x7e00, v4, s4966; GFX10-NEXT:    v_min_f16_e32 v2, v0, v1967; GFX10-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0, v1968; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v2, vcc_lo969; GFX10-NEXT:    s_setpc_b64 s[30:31]970;971; GFX11-SDAG-TRUE16-LABEL: test_vector_reduce_fminimum_v16half:972; GFX11-SDAG-TRUE16:       ; %bb.0: ; %entry973; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)974; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v2.l, v6.l975; GFX11-SDAG-TRUE16-NEXT:    v_pk_min_f16 v8, v2, v6976; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e64 s0, v2.h, v6.h977; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e64 s1, v0.l, v4.l978; GFX11-SDAG-TRUE16-NEXT:    v_pk_min_f16 v2, v0, v4979; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e64 s2, v0.h, v4.h980; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v0.l, 0x7e00, v8.l, vcc_lo981; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v0.h, 0x7e00, v8.h, s0982; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e64 s0, v3.l, v7.l983; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v2.l, 0x7e00, v2.l, s1984; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v2.h, 0x7e00, v2.h, s2985; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e64 s1, v3.h, v7.h986; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e64 s2, v1.l, v5.l987; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e64 s3, v1.h, v5.h988; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v2.l, v0.l989; GFX11-SDAG-TRUE16-NEXT:    v_pk_min_f16 v4, v2, v0990; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_4) | instid1(VALU_DEP_3)991; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v0.l, 0x7e00, v4.l, vcc_lo992; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v2.h, v0.h993; GFX11-SDAG-TRUE16-NEXT:    v_pk_min_f16 v2, v3, v7994; GFX11-SDAG-TRUE16-NEXT:    v_pk_min_f16 v3, v1, v5995; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v0.h, 0x7e00, v4.h, vcc_lo996; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v1.l, 0x7e00, v2.l, s0997; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4)998; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v1.h, 0x7e00, v2.h, s1999; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v2.l, 0x7e00, v3.l, s21000; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v2.h, 0x7e00, v3.h, s31001; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0.l, v0.h1002; GFX11-SDAG-TRUE16-NEXT:    v_min_f16_e32 v0.l, v0.l, v0.h1003; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4)1004; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e64 s0, v2.l, v1.l1005; GFX11-SDAG-TRUE16-NEXT:    v_pk_min_f16 v3, v2, v11006; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)1007; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v0.l, 0x7e00, v0.l, vcc_lo1008; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v0.h, 0x7e00, v3.l, s01009; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e64 s0, v2.h, v1.h1010; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_1) | instid1(VALU_DEP_3)1011; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0.l, v0.h1012; GFX11-SDAG-TRUE16-NEXT:    v_min_f16_e32 v0.l, v0.l, v0.h1013; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v0.h, 0x7e00, v3.h, s01014; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1015; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v0.l, 0x7e00, v0.l, vcc_lo1016; GFX11-SDAG-TRUE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0.l, v0.h1017; GFX11-SDAG-TRUE16-NEXT:    v_min_f16_e32 v0.l, v0.l, v0.h1018; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)1019; GFX11-SDAG-TRUE16-NEXT:    v_cndmask_b16 v0.l, 0x7e00, v0.l, vcc_lo1020; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]1021;1022; GFX11-SDAG-FAKE16-LABEL: test_vector_reduce_fminimum_v16half:1023; GFX11-SDAG-FAKE16:       ; %bb.0: ; %entry1024; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1025; GFX11-SDAG-FAKE16-NEXT:    v_pk_min_f16 v8, v2, v61026; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v2, v61027; GFX11-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v6, 16, v61028; GFX11-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v2, 16, v21029; GFX11-SDAG-FAKE16-NEXT:    v_pk_min_f16 v10, v0, v41030; GFX11-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v11, 16, v41031; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v9, 0x7e00, v8, vcc_lo1032; GFX11-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v8, 16, v81033; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v2, v61034; GFX11-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v12, 16, v01035; GFX11-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v13, 16, v101036; GFX11-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v14, 16, v11037; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v2, 0x7e00, v8, vcc_lo1038; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0, v41039; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_2)1040; GFX11-SDAG-FAKE16-NEXT:    v_perm_b32 v6, v2, v9, 0x50401001041; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v10, vcc_lo1042; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v12, v111043; GFX11-SDAG-FAKE16-NEXT:    v_pk_min_f16 v10, v3, v71044; GFX11-SDAG-FAKE16-NEXT:    v_pk_min_f16 v12, v1, v51045; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v4, 0x7e00, v13, vcc_lo1046; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v3, v71047; GFX11-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v7, 16, v71048; GFX11-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v3, 16, v31049; GFX11-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v13, 16, v51050; GFX11-SDAG-FAKE16-NEXT:    v_perm_b32 v8, v4, v0, 0x50401001051; GFX11-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v15, 16, v121052; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_3) | instid1(VALU_DEP_4)1053; GFX11-SDAG-FAKE16-NEXT:    v_pk_min_f16 v6, v8, v61054; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v8, 0x7e00, v10, vcc_lo1055; GFX11-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v10, 16, v101056; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v3, v71057; GFX11-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v11, 16, v61058; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_3)1059; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v3, 0x7e00, v10, vcc_lo1060; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v1, v51061; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v1, 0x7e00, v12, vcc_lo1062; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v14, v131063; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v5, 0x7e00, v15, vcc_lo1064; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0, v91065; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v6, vcc_lo1066; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v4, v21067; GFX11-SDAG-FAKE16-NEXT:    v_perm_b32 v4, v3, v8, 0x50401001068; GFX11-SDAG-FAKE16-NEXT:    v_perm_b32 v6, v5, v1, 0x50401001069; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v2, 0x7e00, v11, vcc_lo1070; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)1071; GFX11-SDAG-FAKE16-NEXT:    v_pk_min_f16 v4, v6, v41072; GFX11-SDAG-FAKE16-NEXT:    v_min_f16_e32 v7, v0, v21073; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0, v21074; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_3) | instid1(VALU_DEP_2)1075; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v7, vcc_lo1076; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v1, v81077; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v1, 0x7e00, v4, vcc_lo1078; GFX11-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v4, 16, v41079; GFX11-SDAG-FAKE16-NEXT:    v_min_f16_e32 v2, v0, v11080; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0, v11081; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_2) | instid1(VALU_DEP_1)1082; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v2, vcc_lo1083; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v5, v31084; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v1, 0x7e00, v4, vcc_lo1085; GFX11-SDAG-FAKE16-NEXT:    v_min_f16_e32 v2, v0, v11086; GFX11-SDAG-FAKE16-NEXT:    v_cmp_o_f16_e32 vcc_lo, v0, v11087; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_2)1088; GFX11-SDAG-FAKE16-NEXT:    v_cndmask_b32_e32 v0, 0x7e00, v2, vcc_lo1089; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]1090;1091; GFX12-SDAG-TRUE16-LABEL: test_vector_reduce_fminimum_v16half:1092; GFX12-SDAG-TRUE16:       ; %bb.0: ; %entry1093; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x01094; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x01095; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x01096; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x01097; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x01098; GFX12-SDAG-TRUE16-NEXT:    v_pk_minimum_f16 v3, v3, v71099; GFX12-SDAG-TRUE16-NEXT:    v_pk_minimum_f16 v1, v1, v51100; GFX12-SDAG-TRUE16-NEXT:    v_pk_minimum_f16 v2, v2, v61101; GFX12-SDAG-TRUE16-NEXT:    v_pk_minimum_f16 v0, v0, v41102; GFX12-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)1103; GFX12-SDAG-TRUE16-NEXT:    v_pk_minimum_f16 v1, v1, v31104; GFX12-SDAG-TRUE16-NEXT:    v_pk_minimum_f16 v0, v0, v21105; GFX12-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)1106; GFX12-SDAG-TRUE16-NEXT:    v_pk_minimum_f16 v0, v0, v11107; GFX12-SDAG-TRUE16-NEXT:    v_minimum_f16 v0.l, v0.l, v0.h1108; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]1109;1110; GFX12-SDAG-FAKE16-LABEL: test_vector_reduce_fminimum_v16half:1111; GFX12-SDAG-FAKE16:       ; %bb.0: ; %entry1112; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x01113; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x01114; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x01115; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x01116; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x01117; GFX12-SDAG-FAKE16-NEXT:    v_pk_minimum_f16 v3, v3, v71118; GFX12-SDAG-FAKE16-NEXT:    v_pk_minimum_f16 v1, v1, v51119; GFX12-SDAG-FAKE16-NEXT:    v_pk_minimum_f16 v2, v2, v61120; GFX12-SDAG-FAKE16-NEXT:    v_pk_minimum_f16 v0, v0, v41121; GFX12-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)1122; GFX12-SDAG-FAKE16-NEXT:    v_pk_minimum_f16 v1, v1, v31123; GFX12-SDAG-FAKE16-NEXT:    v_pk_minimum_f16 v0, v0, v21124; GFX12-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)1125; GFX12-SDAG-FAKE16-NEXT:    v_pk_minimum_f16 v0, v0, v11126; GFX12-SDAG-FAKE16-NEXT:    v_lshrrev_b32_e32 v1, 16, v01127; GFX12-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)1128; GFX12-SDAG-FAKE16-NEXT:    v_minimum_f16 v0, v0, v11129; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]1130;1131; GFX12-GISEL-TRUE16-LABEL: test_vector_reduce_fminimum_v16half:1132; GFX12-GISEL-TRUE16:       ; %bb.0: ; %entry1133; GFX12-GISEL-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x01134; GFX12-GISEL-TRUE16-NEXT:    s_wait_expcnt 0x01135; GFX12-GISEL-TRUE16-NEXT:    s_wait_samplecnt 0x01136; GFX12-GISEL-TRUE16-NEXT:    s_wait_bvhcnt 0x01137; GFX12-GISEL-TRUE16-NEXT:    s_wait_kmcnt 0x01138; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v0.l, v0.l, v0.h1139; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v0.h, v1.l, v1.h1140; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v1.l, v2.l, v2.h1141; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v1.h, v3.l, v3.h1142; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v2.l, v4.l, v4.h1143; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v2.h, v5.l, v5.h1144; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v3.l, v6.l, v6.h1145; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v3.h, v7.l, v7.h1146; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v0.l, v0.l, v0.h1147; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v0.h, v1.l, v1.h1148; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v1.l, v2.l, v2.h1149; GFX12-GISEL-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_3)1150; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v1.h, v3.l, v3.h1151; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v0.l, v0.l, v0.h1152; GFX12-GISEL-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1153; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v0.h, v1.l, v1.h1154; GFX12-GISEL-TRUE16-NEXT:    v_minimum_f16 v0.l, v0.l, v0.h1155; GFX12-GISEL-TRUE16-NEXT:    s_setpc_b64 s[30:31]1156;1157; GFX12-GISEL-FAKE16-LABEL: test_vector_reduce_fminimum_v16half:1158; GFX12-GISEL-FAKE16:       ; %bb.0: ; %entry1159; GFX12-GISEL-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x01160; GFX12-GISEL-FAKE16-NEXT:    s_wait_expcnt 0x01161; GFX12-GISEL-FAKE16-NEXT:    s_wait_samplecnt 0x01162; GFX12-GISEL-FAKE16-NEXT:    s_wait_bvhcnt 0x01163; GFX12-GISEL-FAKE16-NEXT:    s_wait_kmcnt 0x01164; GFX12-GISEL-FAKE16-NEXT:    v_lshrrev_b32_e32 v8, 16, v01165; GFX12-GISEL-FAKE16-NEXT:    v_lshrrev_b32_e32 v9, 16, v11166; GFX12-GISEL-FAKE16-NEXT:    v_lshrrev_b32_e32 v10, 16, v21167; GFX12-GISEL-FAKE16-NEXT:    v_lshrrev_b32_e32 v11, 16, v31168; GFX12-GISEL-FAKE16-NEXT:    v_lshrrev_b32_e32 v12, 16, v41169; GFX12-GISEL-FAKE16-NEXT:    v_lshrrev_b32_e32 v13, 16, v51170; GFX12-GISEL-FAKE16-NEXT:    v_lshrrev_b32_e32 v14, 16, v61171; GFX12-GISEL-FAKE16-NEXT:    v_lshrrev_b32_e32 v15, 16, v71172; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v0, v0, v81173; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v1, v1, v91174; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v2, v2, v101175; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v3, v3, v111176; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v4, v4, v121177; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v5, v5, v131178; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v6, v6, v141179; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v7, v7, v151180; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v0, v0, v11181; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v1, v2, v31182; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v2, v4, v51183; GFX12-GISEL-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_3)1184; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v3, v6, v71185; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v0, v0, v11186; GFX12-GISEL-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1187; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v1, v2, v31188; GFX12-GISEL-FAKE16-NEXT:    v_minimum_f16 v0, v0, v11189; GFX12-GISEL-FAKE16-NEXT:    s_setpc_b64 s[30:31]1190entry:1191  %res = call half @llvm.vector.reduce.fminimum.v16half(<16 x half> %v)1192  ret half %res1193}1194 1195define float @test_vector_reduce_fminimum_v2float(<2 x float> %v) {1196; GFX7-LABEL: test_vector_reduce_fminimum_v2float:1197; GFX7:       ; %bb.0: ; %entry1198; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1199; GFX7-NEXT:    v_min_f32_e32 v2, v0, v11200; GFX7-NEXT:    v_mov_b32_e32 v3, 0x7fc000001201; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v11202; GFX7-NEXT:    v_cndmask_b32_e32 v0, v3, v2, vcc1203; GFX7-NEXT:    s_setpc_b64 s[30:31]1204;1205; GFX8-LABEL: test_vector_reduce_fminimum_v2float:1206; GFX8:       ; %bb.0: ; %entry1207; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1208; GFX8-NEXT:    v_min_f32_e32 v2, v0, v11209; GFX8-NEXT:    v_mov_b32_e32 v3, 0x7fc000001210; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v11211; GFX8-NEXT:    v_cndmask_b32_e32 v0, v3, v2, vcc1212; GFX8-NEXT:    s_setpc_b64 s[30:31]1213;1214; GFX9-LABEL: test_vector_reduce_fminimum_v2float:1215; GFX9:       ; %bb.0: ; %entry1216; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1217; GFX9-NEXT:    v_min_f32_e32 v2, v0, v11218; GFX9-NEXT:    v_mov_b32_e32 v3, 0x7fc000001219; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v11220; GFX9-NEXT:    s_nop 11221; GFX9-NEXT:    v_cndmask_b32_e32 v0, v3, v2, vcc1222; GFX9-NEXT:    s_setpc_b64 s[30:31]1223;1224; GFX10-LABEL: test_vector_reduce_fminimum_v2float:1225; GFX10:       ; %bb.0: ; %entry1226; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1227; GFX10-NEXT:    v_min_f32_e32 v2, v0, v11228; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v11229; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v2, vcc_lo1230; GFX10-NEXT:    s_setpc_b64 s[30:31]1231;1232; GFX11-LABEL: test_vector_reduce_fminimum_v2float:1233; GFX11:       ; %bb.0: ; %entry1234; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1235; GFX11-NEXT:    v_min_f32_e32 v2, v0, v11236; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v11237; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2)1238; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v2, vcc_lo1239; GFX11-NEXT:    s_setpc_b64 s[30:31]1240;1241; GFX12-LABEL: test_vector_reduce_fminimum_v2float:1242; GFX12:       ; %bb.0: ; %entry1243; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x01244; GFX12-NEXT:    s_wait_expcnt 0x01245; GFX12-NEXT:    s_wait_samplecnt 0x01246; GFX12-NEXT:    s_wait_bvhcnt 0x01247; GFX12-NEXT:    s_wait_kmcnt 0x01248; GFX12-NEXT:    v_minimum_f32 v0, v0, v11249; GFX12-NEXT:    s_setpc_b64 s[30:31]1250entry:1251  %res = call float @llvm.vector.reduce.fminimum.v2float(<2 x float> %v)1252  ret float %res1253}1254 1255define float @test_vector_reduce_fminimum_v3float(<3 x float> %v) {1256; GFX7-LABEL: test_vector_reduce_fminimum_v3float:1257; GFX7:       ; %bb.0: ; %entry1258; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1259; GFX7-NEXT:    v_min_f32_e32 v3, v0, v11260; GFX7-NEXT:    v_mov_b32_e32 v4, 0x7fc000001261; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v11262; GFX7-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc1263; GFX7-NEXT:    v_min_f32_e32 v1, v0, v21264; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v21265; GFX7-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc1266; GFX7-NEXT:    s_setpc_b64 s[30:31]1267;1268; GFX8-LABEL: test_vector_reduce_fminimum_v3float:1269; GFX8:       ; %bb.0: ; %entry1270; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1271; GFX8-NEXT:    v_min_f32_e32 v3, v0, v11272; GFX8-NEXT:    v_mov_b32_e32 v4, 0x7fc000001273; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v11274; GFX8-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc1275; GFX8-NEXT:    v_min_f32_e32 v1, v0, v21276; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v21277; GFX8-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc1278; GFX8-NEXT:    s_setpc_b64 s[30:31]1279;1280; GFX9-LABEL: test_vector_reduce_fminimum_v3float:1281; GFX9:       ; %bb.0: ; %entry1282; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1283; GFX9-NEXT:    v_min_f32_e32 v3, v0, v11284; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7fc000001285; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v11286; GFX9-NEXT:    s_nop 11287; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc1288; GFX9-NEXT:    v_min_f32_e32 v1, v0, v21289; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v21290; GFX9-NEXT:    s_nop 11291; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc1292; GFX9-NEXT:    s_setpc_b64 s[30:31]1293;1294; GFX10-LABEL: test_vector_reduce_fminimum_v3float:1295; GFX10:       ; %bb.0: ; %entry1296; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1297; GFX10-NEXT:    v_min_f32_e32 v3, v0, v11298; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v11299; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v3, vcc_lo1300; GFX10-NEXT:    v_min_f32_e32 v1, v0, v21301; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v21302; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1303; GFX10-NEXT:    s_setpc_b64 s[30:31]1304;1305; GFX11-LABEL: test_vector_reduce_fminimum_v3float:1306; GFX11:       ; %bb.0: ; %entry1307; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1308; GFX11-NEXT:    v_min_f32_e32 v3, v0, v11309; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v11310; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1311; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v3, vcc_lo1312; GFX11-NEXT:    v_min_f32_e32 v1, v0, v21313; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v21314; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2)1315; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1316; GFX11-NEXT:    s_setpc_b64 s[30:31]1317;1318; GFX12-SDAG-LABEL: test_vector_reduce_fminimum_v3float:1319; GFX12-SDAG:       ; %bb.0: ; %entry1320; GFX12-SDAG-NEXT:    s_wait_loadcnt_dscnt 0x01321; GFX12-SDAG-NEXT:    s_wait_expcnt 0x01322; GFX12-SDAG-NEXT:    s_wait_samplecnt 0x01323; GFX12-SDAG-NEXT:    s_wait_bvhcnt 0x01324; GFX12-SDAG-NEXT:    s_wait_kmcnt 0x01325; GFX12-SDAG-NEXT:    v_minimum3_f32 v0, v0, v1, v21326; GFX12-SDAG-NEXT:    s_setpc_b64 s[30:31]1327;1328; GFX12-GISEL-LABEL: test_vector_reduce_fminimum_v3float:1329; GFX12-GISEL:       ; %bb.0: ; %entry1330; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x01331; GFX12-GISEL-NEXT:    s_wait_expcnt 0x01332; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x01333; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x01334; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x01335; GFX12-GISEL-NEXT:    v_minimum_f32 v0, v0, v11336; GFX12-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)1337; GFX12-GISEL-NEXT:    v_minimum_f32 v0, v0, v21338; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]1339entry:1340  %res = call float @llvm.vector.reduce.fminimum.v3float(<3 x float> %v)1341  ret float %res1342}1343 1344define float @test_vector_reduce_fminimum_v4float(<4 x float> %v) {1345; GFX7-LABEL: test_vector_reduce_fminimum_v4float:1346; GFX7:       ; %bb.0: ; %entry1347; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1348; GFX7-NEXT:    v_min_f32_e32 v4, v0, v11349; GFX7-NEXT:    v_mov_b32_e32 v5, 0x7fc000001350; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v11351; GFX7-NEXT:    v_cndmask_b32_e32 v0, v5, v4, vcc1352; GFX7-NEXT:    v_min_f32_e32 v1, v0, v21353; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v21354; GFX7-NEXT:    v_cndmask_b32_e32 v0, v5, v1, vcc1355; GFX7-NEXT:    v_min_f32_e32 v1, v0, v31356; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v31357; GFX7-NEXT:    v_cndmask_b32_e32 v0, v5, v1, vcc1358; GFX7-NEXT:    s_setpc_b64 s[30:31]1359;1360; GFX8-LABEL: test_vector_reduce_fminimum_v4float:1361; GFX8:       ; %bb.0: ; %entry1362; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1363; GFX8-NEXT:    v_min_f32_e32 v4, v0, v11364; GFX8-NEXT:    v_mov_b32_e32 v5, 0x7fc000001365; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v11366; GFX8-NEXT:    v_cndmask_b32_e32 v0, v5, v4, vcc1367; GFX8-NEXT:    v_min_f32_e32 v1, v0, v21368; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v21369; GFX8-NEXT:    v_cndmask_b32_e32 v0, v5, v1, vcc1370; GFX8-NEXT:    v_min_f32_e32 v1, v0, v31371; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v31372; GFX8-NEXT:    v_cndmask_b32_e32 v0, v5, v1, vcc1373; GFX8-NEXT:    s_setpc_b64 s[30:31]1374;1375; GFX9-LABEL: test_vector_reduce_fminimum_v4float:1376; GFX9:       ; %bb.0: ; %entry1377; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1378; GFX9-NEXT:    v_min_f32_e32 v4, v0, v11379; GFX9-NEXT:    v_mov_b32_e32 v5, 0x7fc000001380; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v11381; GFX9-NEXT:    s_nop 11382; GFX9-NEXT:    v_cndmask_b32_e32 v0, v5, v4, vcc1383; GFX9-NEXT:    v_min_f32_e32 v1, v0, v21384; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v21385; GFX9-NEXT:    s_nop 11386; GFX9-NEXT:    v_cndmask_b32_e32 v0, v5, v1, vcc1387; GFX9-NEXT:    v_min_f32_e32 v1, v0, v31388; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v31389; GFX9-NEXT:    s_nop 11390; GFX9-NEXT:    v_cndmask_b32_e32 v0, v5, v1, vcc1391; GFX9-NEXT:    s_setpc_b64 s[30:31]1392;1393; GFX10-LABEL: test_vector_reduce_fminimum_v4float:1394; GFX10:       ; %bb.0: ; %entry1395; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1396; GFX10-NEXT:    v_min_f32_e32 v4, v0, v11397; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v11398; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v4, vcc_lo1399; GFX10-NEXT:    v_min_f32_e32 v1, v0, v21400; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v21401; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1402; GFX10-NEXT:    v_min_f32_e32 v1, v0, v31403; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v31404; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1405; GFX10-NEXT:    s_setpc_b64 s[30:31]1406;1407; GFX11-LABEL: test_vector_reduce_fminimum_v4float:1408; GFX11:       ; %bb.0: ; %entry1409; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1410; GFX11-NEXT:    v_min_f32_e32 v4, v0, v11411; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v11412; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1413; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v4, vcc_lo1414; GFX11-NEXT:    v_min_f32_e32 v1, v0, v21415; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v21416; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1417; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1418; GFX11-NEXT:    v_min_f32_e32 v1, v0, v31419; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v31420; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2)1421; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1422; GFX11-NEXT:    s_setpc_b64 s[30:31]1423;1424; GFX12-SDAG-LABEL: test_vector_reduce_fminimum_v4float:1425; GFX12-SDAG:       ; %bb.0: ; %entry1426; GFX12-SDAG-NEXT:    s_wait_loadcnt_dscnt 0x01427; GFX12-SDAG-NEXT:    s_wait_expcnt 0x01428; GFX12-SDAG-NEXT:    s_wait_samplecnt 0x01429; GFX12-SDAG-NEXT:    s_wait_bvhcnt 0x01430; GFX12-SDAG-NEXT:    s_wait_kmcnt 0x01431; GFX12-SDAG-NEXT:    v_minimum_f32 v0, v0, v11432; GFX12-SDAG-NEXT:    s_delay_alu instid0(VALU_DEP_1)1433; GFX12-SDAG-NEXT:    v_minimum3_f32 v0, v0, v2, v31434; GFX12-SDAG-NEXT:    s_setpc_b64 s[30:31]1435;1436; GFX12-GISEL-LABEL: test_vector_reduce_fminimum_v4float:1437; GFX12-GISEL:       ; %bb.0: ; %entry1438; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x01439; GFX12-GISEL-NEXT:    s_wait_expcnt 0x01440; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x01441; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x01442; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x01443; GFX12-GISEL-NEXT:    v_minimum_f32 v0, v0, v11444; GFX12-GISEL-NEXT:    v_minimum_f32 v1, v2, v31445; GFX12-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)1446; GFX12-GISEL-NEXT:    v_minimum_f32 v0, v0, v11447; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]1448entry:1449  %res = call float @llvm.vector.reduce.fminimum.v4float(<4 x float> %v)1450  ret float %res1451}1452 1453define float @test_vector_reduce_fminimum_v8float(<8 x float> %v) {1454; GFX7-LABEL: test_vector_reduce_fminimum_v8float:1455; GFX7:       ; %bb.0: ; %entry1456; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1457; GFX7-NEXT:    v_min_f32_e32 v8, v0, v11458; GFX7-NEXT:    v_mov_b32_e32 v9, 0x7fc000001459; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v11460; GFX7-NEXT:    v_cndmask_b32_e32 v0, v9, v8, vcc1461; GFX7-NEXT:    v_min_f32_e32 v1, v0, v21462; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v21463; GFX7-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc1464; GFX7-NEXT:    v_min_f32_e32 v1, v0, v31465; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v31466; GFX7-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc1467; GFX7-NEXT:    v_min_f32_e32 v1, v0, v41468; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v41469; GFX7-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc1470; GFX7-NEXT:    v_min_f32_e32 v1, v0, v51471; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v51472; GFX7-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc1473; GFX7-NEXT:    v_min_f32_e32 v1, v0, v61474; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v61475; GFX7-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc1476; GFX7-NEXT:    v_min_f32_e32 v1, v0, v71477; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v71478; GFX7-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc1479; GFX7-NEXT:    s_setpc_b64 s[30:31]1480;1481; GFX8-LABEL: test_vector_reduce_fminimum_v8float:1482; GFX8:       ; %bb.0: ; %entry1483; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1484; GFX8-NEXT:    v_min_f32_e32 v8, v0, v11485; GFX8-NEXT:    v_mov_b32_e32 v9, 0x7fc000001486; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v11487; GFX8-NEXT:    v_cndmask_b32_e32 v0, v9, v8, vcc1488; GFX8-NEXT:    v_min_f32_e32 v1, v0, v21489; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v21490; GFX8-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc1491; GFX8-NEXT:    v_min_f32_e32 v1, v0, v31492; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v31493; GFX8-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc1494; GFX8-NEXT:    v_min_f32_e32 v1, v0, v41495; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v41496; GFX8-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc1497; GFX8-NEXT:    v_min_f32_e32 v1, v0, v51498; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v51499; GFX8-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc1500; GFX8-NEXT:    v_min_f32_e32 v1, v0, v61501; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v61502; GFX8-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc1503; GFX8-NEXT:    v_min_f32_e32 v1, v0, v71504; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v71505; GFX8-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc1506; GFX8-NEXT:    s_setpc_b64 s[30:31]1507;1508; GFX9-LABEL: test_vector_reduce_fminimum_v8float:1509; GFX9:       ; %bb.0: ; %entry1510; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1511; GFX9-NEXT:    v_min_f32_e32 v8, v0, v11512; GFX9-NEXT:    v_mov_b32_e32 v9, 0x7fc000001513; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v11514; GFX9-NEXT:    s_nop 11515; GFX9-NEXT:    v_cndmask_b32_e32 v0, v9, v8, vcc1516; GFX9-NEXT:    v_min_f32_e32 v1, v0, v21517; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v21518; GFX9-NEXT:    s_nop 11519; GFX9-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc1520; GFX9-NEXT:    v_min_f32_e32 v1, v0, v31521; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v31522; GFX9-NEXT:    s_nop 11523; GFX9-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc1524; GFX9-NEXT:    v_min_f32_e32 v1, v0, v41525; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v41526; GFX9-NEXT:    s_nop 11527; GFX9-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc1528; GFX9-NEXT:    v_min_f32_e32 v1, v0, v51529; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v51530; GFX9-NEXT:    s_nop 11531; GFX9-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc1532; GFX9-NEXT:    v_min_f32_e32 v1, v0, v61533; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v61534; GFX9-NEXT:    s_nop 11535; GFX9-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc1536; GFX9-NEXT:    v_min_f32_e32 v1, v0, v71537; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v71538; GFX9-NEXT:    s_nop 11539; GFX9-NEXT:    v_cndmask_b32_e32 v0, v9, v1, vcc1540; GFX9-NEXT:    s_setpc_b64 s[30:31]1541;1542; GFX10-LABEL: test_vector_reduce_fminimum_v8float:1543; GFX10:       ; %bb.0: ; %entry1544; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1545; GFX10-NEXT:    v_min_f32_e32 v8, v0, v11546; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v11547; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v8, vcc_lo1548; GFX10-NEXT:    v_min_f32_e32 v1, v0, v21549; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v21550; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1551; GFX10-NEXT:    v_min_f32_e32 v1, v0, v31552; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v31553; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1554; GFX10-NEXT:    v_min_f32_e32 v1, v0, v41555; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v41556; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1557; GFX10-NEXT:    v_min_f32_e32 v1, v0, v51558; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v51559; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1560; GFX10-NEXT:    v_min_f32_e32 v1, v0, v61561; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v61562; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1563; GFX10-NEXT:    v_min_f32_e32 v1, v0, v71564; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v71565; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1566; GFX10-NEXT:    s_setpc_b64 s[30:31]1567;1568; GFX11-LABEL: test_vector_reduce_fminimum_v8float:1569; GFX11:       ; %bb.0: ; %entry1570; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1571; GFX11-NEXT:    v_min_f32_e32 v8, v0, v11572; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v11573; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1574; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v8, vcc_lo1575; GFX11-NEXT:    v_min_f32_e32 v1, v0, v21576; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v21577; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1578; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1579; GFX11-NEXT:    v_min_f32_e32 v1, v0, v31580; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v31581; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1582; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1583; GFX11-NEXT:    v_min_f32_e32 v1, v0, v41584; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v41585; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1586; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1587; GFX11-NEXT:    v_min_f32_e32 v1, v0, v51588; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v51589; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1590; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1591; GFX11-NEXT:    v_min_f32_e32 v1, v0, v61592; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v61593; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1594; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1595; GFX11-NEXT:    v_min_f32_e32 v1, v0, v71596; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v71597; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2)1598; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1599; GFX11-NEXT:    s_setpc_b64 s[30:31]1600;1601; GFX12-SDAG-LABEL: test_vector_reduce_fminimum_v8float:1602; GFX12-SDAG:       ; %bb.0: ; %entry1603; GFX12-SDAG-NEXT:    s_wait_loadcnt_dscnt 0x01604; GFX12-SDAG-NEXT:    s_wait_expcnt 0x01605; GFX12-SDAG-NEXT:    s_wait_samplecnt 0x01606; GFX12-SDAG-NEXT:    s_wait_bvhcnt 0x01607; GFX12-SDAG-NEXT:    s_wait_kmcnt 0x01608; GFX12-SDAG-NEXT:    v_minimum_f32 v0, v0, v11609; GFX12-SDAG-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)1610; GFX12-SDAG-NEXT:    v_minimum3_f32 v0, v0, v2, v31611; GFX12-SDAG-NEXT:    v_minimum3_f32 v0, v0, v4, v51612; GFX12-SDAG-NEXT:    s_delay_alu instid0(VALU_DEP_1)1613; GFX12-SDAG-NEXT:    v_minimum3_f32 v0, v0, v6, v71614; GFX12-SDAG-NEXT:    s_setpc_b64 s[30:31]1615;1616; GFX12-GISEL-LABEL: test_vector_reduce_fminimum_v8float:1617; GFX12-GISEL:       ; %bb.0: ; %entry1618; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x01619; GFX12-GISEL-NEXT:    s_wait_expcnt 0x01620; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x01621; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x01622; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x01623; GFX12-GISEL-NEXT:    v_minimum_f32 v0, v0, v11624; GFX12-GISEL-NEXT:    v_minimum_f32 v1, v2, v31625; GFX12-GISEL-NEXT:    v_minimum_f32 v2, v4, v51626; GFX12-GISEL-NEXT:    v_minimum_f32 v3, v6, v71627; GFX12-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)1628; GFX12-GISEL-NEXT:    v_minimum_f32 v0, v0, v11629; GFX12-GISEL-NEXT:    v_minimum_f32 v1, v2, v31630; GFX12-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)1631; GFX12-GISEL-NEXT:    v_minimum_f32 v0, v0, v11632; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]1633entry:1634  %res = call float @llvm.vector.reduce.fminimum.v8float(<8 x float> %v)1635  ret float %res1636}1637 1638define float @test_vector_reduce_fminimum_v16float(<16 x float> %v) {1639; GFX7-LABEL: test_vector_reduce_fminimum_v16float:1640; GFX7:       ; %bb.0: ; %entry1641; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1642; GFX7-NEXT:    v_min_f32_e32 v16, v0, v11643; GFX7-NEXT:    v_mov_b32_e32 v17, 0x7fc000001644; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v11645; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v16, vcc1646; GFX7-NEXT:    v_min_f32_e32 v1, v0, v21647; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v21648; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1649; GFX7-NEXT:    v_min_f32_e32 v1, v0, v31650; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v31651; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1652; GFX7-NEXT:    v_min_f32_e32 v1, v0, v41653; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v41654; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1655; GFX7-NEXT:    v_min_f32_e32 v1, v0, v51656; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v51657; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1658; GFX7-NEXT:    v_min_f32_e32 v1, v0, v61659; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v61660; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1661; GFX7-NEXT:    v_min_f32_e32 v1, v0, v71662; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v71663; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1664; GFX7-NEXT:    v_min_f32_e32 v1, v0, v81665; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v81666; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1667; GFX7-NEXT:    v_min_f32_e32 v1, v0, v91668; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v91669; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1670; GFX7-NEXT:    v_min_f32_e32 v1, v0, v101671; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v101672; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1673; GFX7-NEXT:    v_min_f32_e32 v1, v0, v111674; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v111675; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1676; GFX7-NEXT:    v_min_f32_e32 v1, v0, v121677; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v121678; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1679; GFX7-NEXT:    v_min_f32_e32 v1, v0, v131680; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v131681; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1682; GFX7-NEXT:    v_min_f32_e32 v1, v0, v141683; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v141684; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1685; GFX7-NEXT:    v_min_f32_e32 v1, v0, v151686; GFX7-NEXT:    v_cmp_o_f32_e32 vcc, v0, v151687; GFX7-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1688; GFX7-NEXT:    s_setpc_b64 s[30:31]1689;1690; GFX8-LABEL: test_vector_reduce_fminimum_v16float:1691; GFX8:       ; %bb.0: ; %entry1692; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1693; GFX8-NEXT:    v_min_f32_e32 v16, v0, v11694; GFX8-NEXT:    v_mov_b32_e32 v17, 0x7fc000001695; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v11696; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v16, vcc1697; GFX8-NEXT:    v_min_f32_e32 v1, v0, v21698; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v21699; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1700; GFX8-NEXT:    v_min_f32_e32 v1, v0, v31701; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v31702; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1703; GFX8-NEXT:    v_min_f32_e32 v1, v0, v41704; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v41705; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1706; GFX8-NEXT:    v_min_f32_e32 v1, v0, v51707; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v51708; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1709; GFX8-NEXT:    v_min_f32_e32 v1, v0, v61710; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v61711; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1712; GFX8-NEXT:    v_min_f32_e32 v1, v0, v71713; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v71714; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1715; GFX8-NEXT:    v_min_f32_e32 v1, v0, v81716; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v81717; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1718; GFX8-NEXT:    v_min_f32_e32 v1, v0, v91719; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v91720; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1721; GFX8-NEXT:    v_min_f32_e32 v1, v0, v101722; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v101723; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1724; GFX8-NEXT:    v_min_f32_e32 v1, v0, v111725; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v111726; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1727; GFX8-NEXT:    v_min_f32_e32 v1, v0, v121728; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v121729; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1730; GFX8-NEXT:    v_min_f32_e32 v1, v0, v131731; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v131732; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1733; GFX8-NEXT:    v_min_f32_e32 v1, v0, v141734; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v141735; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1736; GFX8-NEXT:    v_min_f32_e32 v1, v0, v151737; GFX8-NEXT:    v_cmp_o_f32_e32 vcc, v0, v151738; GFX8-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1739; GFX8-NEXT:    s_setpc_b64 s[30:31]1740;1741; GFX9-LABEL: test_vector_reduce_fminimum_v16float:1742; GFX9:       ; %bb.0: ; %entry1743; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1744; GFX9-NEXT:    v_min_f32_e32 v16, v0, v11745; GFX9-NEXT:    v_mov_b32_e32 v17, 0x7fc000001746; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v11747; GFX9-NEXT:    s_nop 11748; GFX9-NEXT:    v_cndmask_b32_e32 v0, v17, v16, vcc1749; GFX9-NEXT:    v_min_f32_e32 v1, v0, v21750; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v21751; GFX9-NEXT:    s_nop 11752; GFX9-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1753; GFX9-NEXT:    v_min_f32_e32 v1, v0, v31754; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v31755; GFX9-NEXT:    s_nop 11756; GFX9-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1757; GFX9-NEXT:    v_min_f32_e32 v1, v0, v41758; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v41759; GFX9-NEXT:    s_nop 11760; GFX9-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1761; GFX9-NEXT:    v_min_f32_e32 v1, v0, v51762; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v51763; GFX9-NEXT:    s_nop 11764; GFX9-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1765; GFX9-NEXT:    v_min_f32_e32 v1, v0, v61766; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v61767; GFX9-NEXT:    s_nop 11768; GFX9-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1769; GFX9-NEXT:    v_min_f32_e32 v1, v0, v71770; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v71771; GFX9-NEXT:    s_nop 11772; GFX9-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1773; GFX9-NEXT:    v_min_f32_e32 v1, v0, v81774; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v81775; GFX9-NEXT:    s_nop 11776; GFX9-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1777; GFX9-NEXT:    v_min_f32_e32 v1, v0, v91778; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v91779; GFX9-NEXT:    s_nop 11780; GFX9-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1781; GFX9-NEXT:    v_min_f32_e32 v1, v0, v101782; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v101783; GFX9-NEXT:    s_nop 11784; GFX9-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1785; GFX9-NEXT:    v_min_f32_e32 v1, v0, v111786; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v111787; GFX9-NEXT:    s_nop 11788; GFX9-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1789; GFX9-NEXT:    v_min_f32_e32 v1, v0, v121790; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v121791; GFX9-NEXT:    s_nop 11792; GFX9-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1793; GFX9-NEXT:    v_min_f32_e32 v1, v0, v131794; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v131795; GFX9-NEXT:    s_nop 11796; GFX9-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1797; GFX9-NEXT:    v_min_f32_e32 v1, v0, v141798; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v141799; GFX9-NEXT:    s_nop 11800; GFX9-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1801; GFX9-NEXT:    v_min_f32_e32 v1, v0, v151802; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v151803; GFX9-NEXT:    s_nop 11804; GFX9-NEXT:    v_cndmask_b32_e32 v0, v17, v1, vcc1805; GFX9-NEXT:    s_setpc_b64 s[30:31]1806;1807; GFX10-LABEL: test_vector_reduce_fminimum_v16float:1808; GFX10:       ; %bb.0: ; %entry1809; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1810; GFX10-NEXT:    v_min_f32_e32 v16, v0, v11811; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v11812; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v16, vcc_lo1813; GFX10-NEXT:    v_min_f32_e32 v1, v0, v21814; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v21815; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1816; GFX10-NEXT:    v_min_f32_e32 v1, v0, v31817; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v31818; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1819; GFX10-NEXT:    v_min_f32_e32 v1, v0, v41820; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v41821; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1822; GFX10-NEXT:    v_min_f32_e32 v1, v0, v51823; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v51824; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1825; GFX10-NEXT:    v_min_f32_e32 v1, v0, v61826; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v61827; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1828; GFX10-NEXT:    v_min_f32_e32 v1, v0, v71829; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v71830; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1831; GFX10-NEXT:    v_min_f32_e32 v1, v0, v81832; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v81833; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1834; GFX10-NEXT:    v_min_f32_e32 v1, v0, v91835; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v91836; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1837; GFX10-NEXT:    v_min_f32_e32 v1, v0, v101838; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v101839; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1840; GFX10-NEXT:    v_min_f32_e32 v1, v0, v111841; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v111842; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1843; GFX10-NEXT:    v_min_f32_e32 v1, v0, v121844; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v121845; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1846; GFX10-NEXT:    v_min_f32_e32 v1, v0, v131847; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v131848; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1849; GFX10-NEXT:    v_min_f32_e32 v1, v0, v141850; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v141851; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1852; GFX10-NEXT:    v_min_f32_e32 v1, v0, v151853; GFX10-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v151854; GFX10-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1855; GFX10-NEXT:    s_setpc_b64 s[30:31]1856;1857; GFX11-LABEL: test_vector_reduce_fminimum_v16float:1858; GFX11:       ; %bb.0: ; %entry1859; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1860; GFX11-NEXT:    v_min_f32_e32 v16, v0, v11861; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v11862; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1863; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v16, vcc_lo1864; GFX11-NEXT:    v_min_f32_e32 v1, v0, v21865; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v21866; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1867; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1868; GFX11-NEXT:    v_min_f32_e32 v1, v0, v31869; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v31870; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1871; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1872; GFX11-NEXT:    v_min_f32_e32 v1, v0, v41873; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v41874; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1875; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1876; GFX11-NEXT:    v_min_f32_e32 v1, v0, v51877; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v51878; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1879; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1880; GFX11-NEXT:    v_min_f32_e32 v1, v0, v61881; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v61882; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1883; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1884; GFX11-NEXT:    v_min_f32_e32 v1, v0, v71885; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v71886; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1887; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1888; GFX11-NEXT:    v_min_f32_e32 v1, v0, v81889; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v81890; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1891; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1892; GFX11-NEXT:    v_min_f32_e32 v1, v0, v91893; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v91894; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1895; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1896; GFX11-NEXT:    v_min_f32_e32 v1, v0, v101897; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v101898; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1899; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1900; GFX11-NEXT:    v_min_f32_e32 v1, v0, v111901; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v111902; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1903; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1904; GFX11-NEXT:    v_min_f32_e32 v1, v0, v121905; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v121906; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1907; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1908; GFX11-NEXT:    v_min_f32_e32 v1, v0, v131909; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v131910; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1911; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1912; GFX11-NEXT:    v_min_f32_e32 v1, v0, v141913; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v141914; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1915; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1916; GFX11-NEXT:    v_min_f32_e32 v1, v0, v151917; GFX11-NEXT:    v_cmp_o_f32_e32 vcc_lo, v0, v151918; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2)1919; GFX11-NEXT:    v_cndmask_b32_e32 v0, 0x7fc00000, v1, vcc_lo1920; GFX11-NEXT:    s_setpc_b64 s[30:31]1921;1922; GFX12-SDAG-LABEL: test_vector_reduce_fminimum_v16float:1923; GFX12-SDAG:       ; %bb.0: ; %entry1924; GFX12-SDAG-NEXT:    s_wait_loadcnt_dscnt 0x01925; GFX12-SDAG-NEXT:    s_wait_expcnt 0x01926; GFX12-SDAG-NEXT:    s_wait_samplecnt 0x01927; GFX12-SDAG-NEXT:    s_wait_bvhcnt 0x01928; GFX12-SDAG-NEXT:    s_wait_kmcnt 0x01929; GFX12-SDAG-NEXT:    v_minimum_f32 v0, v0, v11930; GFX12-SDAG-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)1931; GFX12-SDAG-NEXT:    v_minimum3_f32 v0, v0, v2, v31932; GFX12-SDAG-NEXT:    v_minimum3_f32 v0, v0, v4, v51933; GFX12-SDAG-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)1934; GFX12-SDAG-NEXT:    v_minimum3_f32 v0, v0, v6, v71935; GFX12-SDAG-NEXT:    v_minimum3_f32 v0, v0, v8, v91936; GFX12-SDAG-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)1937; GFX12-SDAG-NEXT:    v_minimum3_f32 v0, v0, v10, v111938; GFX12-SDAG-NEXT:    v_minimum3_f32 v0, v0, v12, v131939; GFX12-SDAG-NEXT:    s_delay_alu instid0(VALU_DEP_1)1940; GFX12-SDAG-NEXT:    v_minimum3_f32 v0, v0, v14, v151941; GFX12-SDAG-NEXT:    s_setpc_b64 s[30:31]1942;1943; GFX12-GISEL-LABEL: test_vector_reduce_fminimum_v16float:1944; GFX12-GISEL:       ; %bb.0: ; %entry1945; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x01946; GFX12-GISEL-NEXT:    s_wait_expcnt 0x01947; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x01948; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x01949; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x01950; GFX12-GISEL-NEXT:    v_minimum_f32 v0, v0, v11951; GFX12-GISEL-NEXT:    v_minimum_f32 v1, v2, v31952; GFX12-GISEL-NEXT:    v_minimum_f32 v2, v4, v51953; GFX12-GISEL-NEXT:    v_minimum_f32 v3, v6, v71954; GFX12-GISEL-NEXT:    v_minimum_f32 v4, v8, v91955; GFX12-GISEL-NEXT:    v_minimum_f32 v5, v10, v111956; GFX12-GISEL-NEXT:    v_minimum_f32 v6, v12, v131957; GFX12-GISEL-NEXT:    v_minimum_f32 v7, v14, v151958; GFX12-GISEL-NEXT:    v_minimum_f32 v0, v0, v11959; GFX12-GISEL-NEXT:    v_minimum_f32 v1, v2, v31960; GFX12-GISEL-NEXT:    v_minimum_f32 v2, v4, v51961; GFX12-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_3)1962; GFX12-GISEL-NEXT:    v_minimum_f32 v3, v6, v71963; GFX12-GISEL-NEXT:    v_minimum_f32 v0, v0, v11964; GFX12-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1965; GFX12-GISEL-NEXT:    v_minimum_f32 v1, v2, v31966; GFX12-GISEL-NEXT:    v_minimum_f32 v0, v0, v11967; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]1968entry:1969  %res = call float @llvm.vector.reduce.fminimum.v16float(<16 x float> %v)1970  ret float %res1971}1972 1973 1974define double @test_vector_reduce_fminimum_v2double(<2 x double> %v) {1975; GFX7-LABEL: test_vector_reduce_fminimum_v2double:1976; GFX7:       ; %bb.0: ; %entry1977; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1978; GFX7-NEXT:    v_min_f64 v[4:5], v[0:1], v[2:3]1979; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]1980; GFX7-NEXT:    v_mov_b32_e32 v1, 0x7ff800001981; GFX7-NEXT:    v_cndmask_b32_e64 v0, v4, 0, vcc1982; GFX7-NEXT:    v_cndmask_b32_e32 v1, v5, v1, vcc1983; GFX7-NEXT:    s_setpc_b64 s[30:31]1984;1985; GFX8-LABEL: test_vector_reduce_fminimum_v2double:1986; GFX8:       ; %bb.0: ; %entry1987; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1988; GFX8-NEXT:    v_min_f64 v[4:5], v[0:1], v[2:3]1989; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]1990; GFX8-NEXT:    v_mov_b32_e32 v1, 0x7ff800001991; GFX8-NEXT:    v_cndmask_b32_e64 v0, v4, 0, vcc1992; GFX8-NEXT:    v_cndmask_b32_e32 v1, v5, v1, vcc1993; GFX8-NEXT:    s_setpc_b64 s[30:31]1994;1995; GFX9-LABEL: test_vector_reduce_fminimum_v2double:1996; GFX9:       ; %bb.0: ; %entry1997; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1998; GFX9-NEXT:    v_min_f64 v[4:5], v[0:1], v[2:3]1999; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]2000; GFX9-NEXT:    v_mov_b32_e32 v1, 0x7ff800002001; GFX9-NEXT:    s_nop 02002; GFX9-NEXT:    v_cndmask_b32_e64 v0, v4, 0, vcc2003; GFX9-NEXT:    v_cndmask_b32_e32 v1, v5, v1, vcc2004; GFX9-NEXT:    s_setpc_b64 s[30:31]2005;2006; GFX10-LABEL: test_vector_reduce_fminimum_v2double:2007; GFX10:       ; %bb.0: ; %entry2008; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2009; GFX10-NEXT:    v_min_f64 v[4:5], v[0:1], v[2:3]2010; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[2:3]2011; GFX10-NEXT:    v_cndmask_b32_e64 v0, v4, 0, vcc_lo2012; GFX10-NEXT:    v_cndmask_b32_e64 v1, v5, 0x7ff80000, vcc_lo2013; GFX10-NEXT:    s_setpc_b64 s[30:31]2014;2015; GFX11-LABEL: test_vector_reduce_fminimum_v2double:2016; GFX11:       ; %bb.0: ; %entry2017; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2018; GFX11-NEXT:    v_min_f64 v[4:5], v[0:1], v[2:3]2019; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[2:3]2020; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_3)2021; GFX11-NEXT:    v_cndmask_b32_e64 v0, v4, 0, vcc_lo2022; GFX11-NEXT:    v_cndmask_b32_e64 v1, v5, 0x7ff80000, vcc_lo2023; GFX11-NEXT:    s_setpc_b64 s[30:31]2024;2025; GFX12-LABEL: test_vector_reduce_fminimum_v2double:2026; GFX12:       ; %bb.0: ; %entry2027; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x02028; GFX12-NEXT:    s_wait_expcnt 0x02029; GFX12-NEXT:    s_wait_samplecnt 0x02030; GFX12-NEXT:    s_wait_bvhcnt 0x02031; GFX12-NEXT:    s_wait_kmcnt 0x02032; GFX12-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[2:3]2033; GFX12-NEXT:    s_setpc_b64 s[30:31]2034entry:2035  %res = call double @llvm.vector.reduce.fminimum.v2double(<2 x double> %v)2036  ret double %res2037}2038 2039define double @test_vector_reduce_fminimum_v3double(<3 x double> %v) {2040; GFX7-LABEL: test_vector_reduce_fminimum_v3double:2041; GFX7:       ; %bb.0: ; %entry2042; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2043; GFX7-NEXT:    v_min_f64 v[6:7], v[0:1], v[2:3]2044; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]2045; GFX7-NEXT:    v_mov_b32_e32 v8, 0x7ff800002046; GFX7-NEXT:    v_cndmask_b32_e32 v1, v7, v8, vcc2047; GFX7-NEXT:    v_cndmask_b32_e64 v0, v6, 0, vcc2048; GFX7-NEXT:    v_min_f64 v[2:3], v[0:1], v[4:5]2049; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]2050; GFX7-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2051; GFX7-NEXT:    v_cndmask_b32_e32 v1, v3, v8, vcc2052; GFX7-NEXT:    s_setpc_b64 s[30:31]2053;2054; GFX8-LABEL: test_vector_reduce_fminimum_v3double:2055; GFX8:       ; %bb.0: ; %entry2056; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2057; GFX8-NEXT:    v_min_f64 v[6:7], v[0:1], v[2:3]2058; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]2059; GFX8-NEXT:    v_mov_b32_e32 v8, 0x7ff800002060; GFX8-NEXT:    v_cndmask_b32_e32 v1, v7, v8, vcc2061; GFX8-NEXT:    v_cndmask_b32_e64 v0, v6, 0, vcc2062; GFX8-NEXT:    v_min_f64 v[2:3], v[0:1], v[4:5]2063; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]2064; GFX8-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2065; GFX8-NEXT:    v_cndmask_b32_e32 v1, v3, v8, vcc2066; GFX8-NEXT:    s_setpc_b64 s[30:31]2067;2068; GFX9-LABEL: test_vector_reduce_fminimum_v3double:2069; GFX9:       ; %bb.0: ; %entry2070; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2071; GFX9-NEXT:    v_min_f64 v[6:7], v[0:1], v[2:3]2072; GFX9-NEXT:    v_mov_b32_e32 v8, 0x7ff800002073; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]2074; GFX9-NEXT:    s_nop 12075; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v8, vcc2076; GFX9-NEXT:    v_cndmask_b32_e64 v0, v6, 0, vcc2077; GFX9-NEXT:    v_min_f64 v[2:3], v[0:1], v[4:5]2078; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]2079; GFX9-NEXT:    s_nop 12080; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2081; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v8, vcc2082; GFX9-NEXT:    s_setpc_b64 s[30:31]2083;2084; GFX10-LABEL: test_vector_reduce_fminimum_v3double:2085; GFX10:       ; %bb.0: ; %entry2086; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2087; GFX10-NEXT:    v_min_f64 v[6:7], v[0:1], v[2:3]2088; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[2:3]2089; GFX10-NEXT:    v_cndmask_b32_e64 v1, v7, 0x7ff80000, vcc_lo2090; GFX10-NEXT:    v_cndmask_b32_e64 v0, v6, 0, vcc_lo2091; GFX10-NEXT:    v_min_f64 v[2:3], v[0:1], v[4:5]2092; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[4:5]2093; GFX10-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2094; GFX10-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2095; GFX10-NEXT:    s_setpc_b64 s[30:31]2096;2097; GFX11-LABEL: test_vector_reduce_fminimum_v3double:2098; GFX11:       ; %bb.0: ; %entry2099; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2100; GFX11-NEXT:    v_min_f64 v[6:7], v[0:1], v[2:3]2101; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[2:3]2102; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_3)2103; GFX11-NEXT:    v_cndmask_b32_e64 v1, v7, 0x7ff80000, vcc_lo2104; GFX11-NEXT:    v_cndmask_b32_e64 v0, v6, 0, vcc_lo2105; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)2106; GFX11-NEXT:    v_min_f64 v[2:3], v[0:1], v[4:5]2107; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[4:5]2108; GFX11-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2109; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_3)2110; GFX11-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2111; GFX11-NEXT:    s_setpc_b64 s[30:31]2112;2113; GFX12-LABEL: test_vector_reduce_fminimum_v3double:2114; GFX12:       ; %bb.0: ; %entry2115; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x02116; GFX12-NEXT:    s_wait_expcnt 0x02117; GFX12-NEXT:    s_wait_samplecnt 0x02118; GFX12-NEXT:    s_wait_bvhcnt 0x02119; GFX12-NEXT:    s_wait_kmcnt 0x02120; GFX12-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[2:3]2121; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)2122; GFX12-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[4:5]2123; GFX12-NEXT:    s_setpc_b64 s[30:31]2124entry:2125  %res = call double @llvm.vector.reduce.fminimum.v3double(<3 x double> %v)2126  ret double %res2127}2128 2129define double @test_vector_reduce_fminimum_v4double(<4 x double> %v) {2130; GFX7-LABEL: test_vector_reduce_fminimum_v4double:2131; GFX7:       ; %bb.0: ; %entry2132; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2133; GFX7-NEXT:    v_min_f64 v[8:9], v[0:1], v[2:3]2134; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]2135; GFX7-NEXT:    v_mov_b32_e32 v10, 0x7ff800002136; GFX7-NEXT:    v_cndmask_b32_e32 v1, v9, v10, vcc2137; GFX7-NEXT:    v_cndmask_b32_e64 v0, v8, 0, vcc2138; GFX7-NEXT:    v_min_f64 v[2:3], v[0:1], v[4:5]2139; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]2140; GFX7-NEXT:    v_cndmask_b32_e32 v1, v3, v10, vcc2141; GFX7-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2142; GFX7-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]2143; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[6:7]2144; GFX7-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2145; GFX7-NEXT:    v_cndmask_b32_e32 v1, v3, v10, vcc2146; GFX7-NEXT:    s_setpc_b64 s[30:31]2147;2148; GFX8-LABEL: test_vector_reduce_fminimum_v4double:2149; GFX8:       ; %bb.0: ; %entry2150; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2151; GFX8-NEXT:    v_min_f64 v[8:9], v[0:1], v[2:3]2152; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]2153; GFX8-NEXT:    v_mov_b32_e32 v10, 0x7ff800002154; GFX8-NEXT:    v_cndmask_b32_e32 v1, v9, v10, vcc2155; GFX8-NEXT:    v_cndmask_b32_e64 v0, v8, 0, vcc2156; GFX8-NEXT:    v_min_f64 v[2:3], v[0:1], v[4:5]2157; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]2158; GFX8-NEXT:    v_cndmask_b32_e32 v1, v3, v10, vcc2159; GFX8-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2160; GFX8-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]2161; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[6:7]2162; GFX8-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2163; GFX8-NEXT:    v_cndmask_b32_e32 v1, v3, v10, vcc2164; GFX8-NEXT:    s_setpc_b64 s[30:31]2165;2166; GFX9-LABEL: test_vector_reduce_fminimum_v4double:2167; GFX9:       ; %bb.0: ; %entry2168; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2169; GFX9-NEXT:    v_min_f64 v[8:9], v[0:1], v[2:3]2170; GFX9-NEXT:    v_mov_b32_e32 v10, 0x7ff800002171; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]2172; GFX9-NEXT:    s_nop 12173; GFX9-NEXT:    v_cndmask_b32_e32 v1, v9, v10, vcc2174; GFX9-NEXT:    v_cndmask_b32_e64 v0, v8, 0, vcc2175; GFX9-NEXT:    v_min_f64 v[2:3], v[0:1], v[4:5]2176; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]2177; GFX9-NEXT:    s_nop 12178; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v10, vcc2179; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2180; GFX9-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]2181; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[6:7]2182; GFX9-NEXT:    s_nop 12183; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2184; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v10, vcc2185; GFX9-NEXT:    s_setpc_b64 s[30:31]2186;2187; GFX10-LABEL: test_vector_reduce_fminimum_v4double:2188; GFX10:       ; %bb.0: ; %entry2189; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2190; GFX10-NEXT:    v_min_f64 v[8:9], v[0:1], v[2:3]2191; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[2:3]2192; GFX10-NEXT:    v_cndmask_b32_e64 v1, v9, 0x7ff80000, vcc_lo2193; GFX10-NEXT:    v_cndmask_b32_e64 v0, v8, 0, vcc_lo2194; GFX10-NEXT:    v_min_f64 v[2:3], v[0:1], v[4:5]2195; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[4:5]2196; GFX10-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2197; GFX10-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2198; GFX10-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]2199; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[6:7]2200; GFX10-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2201; GFX10-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2202; GFX10-NEXT:    s_setpc_b64 s[30:31]2203;2204; GFX11-LABEL: test_vector_reduce_fminimum_v4double:2205; GFX11:       ; %bb.0: ; %entry2206; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2207; GFX11-NEXT:    v_min_f64 v[8:9], v[0:1], v[2:3]2208; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[2:3]2209; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_3)2210; GFX11-NEXT:    v_cndmask_b32_e64 v1, v9, 0x7ff80000, vcc_lo2211; GFX11-NEXT:    v_cndmask_b32_e64 v0, v8, 0, vcc_lo2212; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)2213; GFX11-NEXT:    v_min_f64 v[2:3], v[0:1], v[4:5]2214; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[4:5]2215; GFX11-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2216; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1)2217; GFX11-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2218; GFX11-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]2219; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[6:7]2220; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_3)2221; GFX11-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2222; GFX11-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2223; GFX11-NEXT:    s_setpc_b64 s[30:31]2224;2225; GFX12-SDAG-LABEL: test_vector_reduce_fminimum_v4double:2226; GFX12-SDAG:       ; %bb.0: ; %entry2227; GFX12-SDAG-NEXT:    s_wait_loadcnt_dscnt 0x02228; GFX12-SDAG-NEXT:    s_wait_expcnt 0x02229; GFX12-SDAG-NEXT:    s_wait_samplecnt 0x02230; GFX12-SDAG-NEXT:    s_wait_bvhcnt 0x02231; GFX12-SDAG-NEXT:    s_wait_kmcnt 0x02232; GFX12-SDAG-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[2:3]2233; GFX12-SDAG-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2234; GFX12-SDAG-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[4:5]2235; GFX12-SDAG-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[6:7]2236; GFX12-SDAG-NEXT:    s_setpc_b64 s[30:31]2237;2238; GFX12-GISEL-LABEL: test_vector_reduce_fminimum_v4double:2239; GFX12-GISEL:       ; %bb.0: ; %entry2240; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x02241; GFX12-GISEL-NEXT:    s_wait_expcnt 0x02242; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x02243; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x02244; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x02245; GFX12-GISEL-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[2:3]2246; GFX12-GISEL-NEXT:    v_minimum_f64 v[2:3], v[4:5], v[6:7]2247; GFX12-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)2248; GFX12-GISEL-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[2:3]2249; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]2250entry:2251  %res = call double @llvm.vector.reduce.fminimum.v4double(<4 x double> %v)2252  ret double %res2253}2254 2255define double @test_vector_reduce_fminimum_v8double(<8 x double> %v) {2256; GFX7-LABEL: test_vector_reduce_fminimum_v8double:2257; GFX7:       ; %bb.0: ; %entry2258; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2259; GFX7-NEXT:    v_min_f64 v[16:17], v[0:1], v[2:3]2260; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]2261; GFX7-NEXT:    v_mov_b32_e32 v18, 0x7ff800002262; GFX7-NEXT:    v_cndmask_b32_e32 v1, v17, v18, vcc2263; GFX7-NEXT:    v_cndmask_b32_e64 v0, v16, 0, vcc2264; GFX7-NEXT:    v_min_f64 v[2:3], v[0:1], v[4:5]2265; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]2266; GFX7-NEXT:    v_cndmask_b32_e32 v1, v3, v18, vcc2267; GFX7-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2268; GFX7-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]2269; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[6:7]2270; GFX7-NEXT:    v_cndmask_b32_e32 v1, v3, v18, vcc2271; GFX7-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2272; GFX7-NEXT:    v_min_f64 v[2:3], v[0:1], v[8:9]2273; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[8:9]2274; GFX7-NEXT:    v_cndmask_b32_e32 v1, v3, v18, vcc2275; GFX7-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2276; GFX7-NEXT:    v_min_f64 v[2:3], v[0:1], v[10:11]2277; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[10:11]2278; GFX7-NEXT:    v_cndmask_b32_e32 v1, v3, v18, vcc2279; GFX7-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2280; GFX7-NEXT:    v_min_f64 v[2:3], v[0:1], v[12:13]2281; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[12:13]2282; GFX7-NEXT:    v_cndmask_b32_e32 v1, v3, v18, vcc2283; GFX7-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2284; GFX7-NEXT:    v_min_f64 v[2:3], v[0:1], v[14:15]2285; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[14:15]2286; GFX7-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2287; GFX7-NEXT:    v_cndmask_b32_e32 v1, v3, v18, vcc2288; GFX7-NEXT:    s_setpc_b64 s[30:31]2289;2290; GFX8-LABEL: test_vector_reduce_fminimum_v8double:2291; GFX8:       ; %bb.0: ; %entry2292; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2293; GFX8-NEXT:    v_min_f64 v[16:17], v[0:1], v[2:3]2294; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]2295; GFX8-NEXT:    v_mov_b32_e32 v18, 0x7ff800002296; GFX8-NEXT:    v_cndmask_b32_e32 v1, v17, v18, vcc2297; GFX8-NEXT:    v_cndmask_b32_e64 v0, v16, 0, vcc2298; GFX8-NEXT:    v_min_f64 v[2:3], v[0:1], v[4:5]2299; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]2300; GFX8-NEXT:    v_cndmask_b32_e32 v1, v3, v18, vcc2301; GFX8-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2302; GFX8-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]2303; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[6:7]2304; GFX8-NEXT:    v_cndmask_b32_e32 v1, v3, v18, vcc2305; GFX8-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2306; GFX8-NEXT:    v_min_f64 v[2:3], v[0:1], v[8:9]2307; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[8:9]2308; GFX8-NEXT:    v_cndmask_b32_e32 v1, v3, v18, vcc2309; GFX8-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2310; GFX8-NEXT:    v_min_f64 v[2:3], v[0:1], v[10:11]2311; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[10:11]2312; GFX8-NEXT:    v_cndmask_b32_e32 v1, v3, v18, vcc2313; GFX8-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2314; GFX8-NEXT:    v_min_f64 v[2:3], v[0:1], v[12:13]2315; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[12:13]2316; GFX8-NEXT:    v_cndmask_b32_e32 v1, v3, v18, vcc2317; GFX8-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2318; GFX8-NEXT:    v_min_f64 v[2:3], v[0:1], v[14:15]2319; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[14:15]2320; GFX8-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2321; GFX8-NEXT:    v_cndmask_b32_e32 v1, v3, v18, vcc2322; GFX8-NEXT:    s_setpc_b64 s[30:31]2323;2324; GFX9-LABEL: test_vector_reduce_fminimum_v8double:2325; GFX9:       ; %bb.0: ; %entry2326; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2327; GFX9-NEXT:    v_min_f64 v[16:17], v[0:1], v[2:3]2328; GFX9-NEXT:    v_mov_b32_e32 v18, 0x7ff800002329; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]2330; GFX9-NEXT:    s_nop 12331; GFX9-NEXT:    v_cndmask_b32_e32 v1, v17, v18, vcc2332; GFX9-NEXT:    v_cndmask_b32_e64 v0, v16, 0, vcc2333; GFX9-NEXT:    v_min_f64 v[2:3], v[0:1], v[4:5]2334; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]2335; GFX9-NEXT:    s_nop 12336; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v18, vcc2337; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2338; GFX9-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]2339; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[6:7]2340; GFX9-NEXT:    s_nop 12341; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v18, vcc2342; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2343; GFX9-NEXT:    v_min_f64 v[2:3], v[0:1], v[8:9]2344; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[8:9]2345; GFX9-NEXT:    s_nop 12346; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v18, vcc2347; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2348; GFX9-NEXT:    v_min_f64 v[2:3], v[0:1], v[10:11]2349; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[10:11]2350; GFX9-NEXT:    s_nop 12351; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v18, vcc2352; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2353; GFX9-NEXT:    v_min_f64 v[2:3], v[0:1], v[12:13]2354; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[12:13]2355; GFX9-NEXT:    s_nop 12356; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v18, vcc2357; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2358; GFX9-NEXT:    v_min_f64 v[2:3], v[0:1], v[14:15]2359; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[14:15]2360; GFX9-NEXT:    s_nop 12361; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2362; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v18, vcc2363; GFX9-NEXT:    s_setpc_b64 s[30:31]2364;2365; GFX10-LABEL: test_vector_reduce_fminimum_v8double:2366; GFX10:       ; %bb.0: ; %entry2367; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2368; GFX10-NEXT:    v_min_f64 v[16:17], v[0:1], v[2:3]2369; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[2:3]2370; GFX10-NEXT:    v_cndmask_b32_e64 v1, v17, 0x7ff80000, vcc_lo2371; GFX10-NEXT:    v_cndmask_b32_e64 v0, v16, 0, vcc_lo2372; GFX10-NEXT:    v_min_f64 v[2:3], v[0:1], v[4:5]2373; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[4:5]2374; GFX10-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2375; GFX10-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2376; GFX10-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]2377; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[6:7]2378; GFX10-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2379; GFX10-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2380; GFX10-NEXT:    v_min_f64 v[2:3], v[0:1], v[8:9]2381; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[8:9]2382; GFX10-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2383; GFX10-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2384; GFX10-NEXT:    v_min_f64 v[2:3], v[0:1], v[10:11]2385; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[10:11]2386; GFX10-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2387; GFX10-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2388; GFX10-NEXT:    v_min_f64 v[2:3], v[0:1], v[12:13]2389; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[12:13]2390; GFX10-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2391; GFX10-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2392; GFX10-NEXT:    v_min_f64 v[2:3], v[0:1], v[14:15]2393; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[14:15]2394; GFX10-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2395; GFX10-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2396; GFX10-NEXT:    s_setpc_b64 s[30:31]2397;2398; GFX11-LABEL: test_vector_reduce_fminimum_v8double:2399; GFX11:       ; %bb.0: ; %entry2400; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2401; GFX11-NEXT:    v_min_f64 v[16:17], v[0:1], v[2:3]2402; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[2:3]2403; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_3)2404; GFX11-NEXT:    v_cndmask_b32_e64 v1, v17, 0x7ff80000, vcc_lo2405; GFX11-NEXT:    v_cndmask_b32_e64 v0, v16, 0, vcc_lo2406; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)2407; GFX11-NEXT:    v_min_f64 v[2:3], v[0:1], v[4:5]2408; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[4:5]2409; GFX11-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2410; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1)2411; GFX11-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2412; GFX11-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]2413; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[6:7]2414; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_3)2415; GFX11-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2416; GFX11-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2417; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)2418; GFX11-NEXT:    v_min_f64 v[2:3], v[0:1], v[8:9]2419; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[8:9]2420; GFX11-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2421; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1)2422; GFX11-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2423; GFX11-NEXT:    v_min_f64 v[2:3], v[0:1], v[10:11]2424; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[10:11]2425; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_3)2426; GFX11-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2427; GFX11-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2428; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)2429; GFX11-NEXT:    v_min_f64 v[2:3], v[0:1], v[12:13]2430; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[12:13]2431; GFX11-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2432; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1)2433; GFX11-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2434; GFX11-NEXT:    v_min_f64 v[2:3], v[0:1], v[14:15]2435; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[14:15]2436; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_3)2437; GFX11-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2438; GFX11-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2439; GFX11-NEXT:    s_setpc_b64 s[30:31]2440;2441; GFX12-SDAG-LABEL: test_vector_reduce_fminimum_v8double:2442; GFX12-SDAG:       ; %bb.0: ; %entry2443; GFX12-SDAG-NEXT:    s_wait_loadcnt_dscnt 0x02444; GFX12-SDAG-NEXT:    s_wait_expcnt 0x02445; GFX12-SDAG-NEXT:    s_wait_samplecnt 0x02446; GFX12-SDAG-NEXT:    s_wait_bvhcnt 0x02447; GFX12-SDAG-NEXT:    s_wait_kmcnt 0x02448; GFX12-SDAG-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[2:3]2449; GFX12-SDAG-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2450; GFX12-SDAG-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[4:5]2451; GFX12-SDAG-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[6:7]2452; GFX12-SDAG-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2453; GFX12-SDAG-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[8:9]2454; GFX12-SDAG-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[10:11]2455; GFX12-SDAG-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2456; GFX12-SDAG-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[12:13]2457; GFX12-SDAG-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[14:15]2458; GFX12-SDAG-NEXT:    s_setpc_b64 s[30:31]2459;2460; GFX12-GISEL-LABEL: test_vector_reduce_fminimum_v8double:2461; GFX12-GISEL:       ; %bb.0: ; %entry2462; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x02463; GFX12-GISEL-NEXT:    s_wait_expcnt 0x02464; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x02465; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x02466; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x02467; GFX12-GISEL-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[2:3]2468; GFX12-GISEL-NEXT:    v_minimum_f64 v[2:3], v[4:5], v[6:7]2469; GFX12-GISEL-NEXT:    v_minimum_f64 v[4:5], v[8:9], v[10:11]2470; GFX12-GISEL-NEXT:    v_minimum_f64 v[6:7], v[12:13], v[14:15]2471; GFX12-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)2472; GFX12-GISEL-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[2:3]2473; GFX12-GISEL-NEXT:    v_minimum_f64 v[2:3], v[4:5], v[6:7]2474; GFX12-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)2475; GFX12-GISEL-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[2:3]2476; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]2477entry:2478  %res = call double @llvm.vector.reduce.fminimum.v8double(<8 x double> %v)2479  ret double %res2480}2481 2482define double @test_vector_reduce_fminimum_v16double(<16 x double> %v) {2483; GFX7-LABEL: test_vector_reduce_fminimum_v16double:2484; GFX7:       ; %bb.0: ; %entry2485; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2486; GFX7-NEXT:    v_min_f64 v[31:32], v[0:1], v[2:3]2487; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]2488; GFX7-NEXT:    v_mov_b32_e32 v33, 0x7ff800002489; GFX7-NEXT:    v_cndmask_b32_e32 v1, v32, v33, vcc2490; GFX7-NEXT:    v_cndmask_b32_e64 v0, v31, 0, vcc2491; GFX7-NEXT:    v_min_f64 v[2:3], v[0:1], v[4:5]2492; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]2493; GFX7-NEXT:    buffer_load_dword v31, off, s[0:3], s322494; GFX7-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2495; GFX7-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2496; GFX7-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]2497; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[6:7]2498; GFX7-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2499; GFX7-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2500; GFX7-NEXT:    v_min_f64 v[2:3], v[0:1], v[8:9]2501; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[8:9]2502; GFX7-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2503; GFX7-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2504; GFX7-NEXT:    v_min_f64 v[2:3], v[0:1], v[10:11]2505; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[10:11]2506; GFX7-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2507; GFX7-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2508; GFX7-NEXT:    v_min_f64 v[2:3], v[0:1], v[12:13]2509; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[12:13]2510; GFX7-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2511; GFX7-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2512; GFX7-NEXT:    v_min_f64 v[2:3], v[0:1], v[14:15]2513; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[14:15]2514; GFX7-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2515; GFX7-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2516; GFX7-NEXT:    v_min_f64 v[2:3], v[0:1], v[16:17]2517; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[16:17]2518; GFX7-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2519; GFX7-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2520; GFX7-NEXT:    v_min_f64 v[2:3], v[0:1], v[18:19]2521; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[18:19]2522; GFX7-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2523; GFX7-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2524; GFX7-NEXT:    v_min_f64 v[2:3], v[0:1], v[20:21]2525; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[20:21]2526; GFX7-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2527; GFX7-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2528; GFX7-NEXT:    v_min_f64 v[2:3], v[0:1], v[22:23]2529; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[22:23]2530; GFX7-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2531; GFX7-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2532; GFX7-NEXT:    v_min_f64 v[2:3], v[0:1], v[24:25]2533; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[24:25]2534; GFX7-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2535; GFX7-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2536; GFX7-NEXT:    v_min_f64 v[2:3], v[0:1], v[26:27]2537; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[26:27]2538; GFX7-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2539; GFX7-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2540; GFX7-NEXT:    v_min_f64 v[2:3], v[0:1], v[28:29]2541; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[28:29]2542; GFX7-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2543; GFX7-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2544; GFX7-NEXT:    s_waitcnt vmcnt(0)2545; GFX7-NEXT:    v_min_f64 v[2:3], v[0:1], v[30:31]2546; GFX7-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[30:31]2547; GFX7-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2548; GFX7-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2549; GFX7-NEXT:    s_setpc_b64 s[30:31]2550;2551; GFX8-LABEL: test_vector_reduce_fminimum_v16double:2552; GFX8:       ; %bb.0: ; %entry2553; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2554; GFX8-NEXT:    v_min_f64 v[31:32], v[0:1], v[2:3]2555; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]2556; GFX8-NEXT:    v_mov_b32_e32 v33, 0x7ff800002557; GFX8-NEXT:    v_cndmask_b32_e32 v1, v32, v33, vcc2558; GFX8-NEXT:    v_cndmask_b32_e64 v0, v31, 0, vcc2559; GFX8-NEXT:    v_min_f64 v[2:3], v[0:1], v[4:5]2560; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]2561; GFX8-NEXT:    buffer_load_dword v31, off, s[0:3], s322562; GFX8-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2563; GFX8-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2564; GFX8-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]2565; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[6:7]2566; GFX8-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2567; GFX8-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2568; GFX8-NEXT:    v_min_f64 v[2:3], v[0:1], v[8:9]2569; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[8:9]2570; GFX8-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2571; GFX8-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2572; GFX8-NEXT:    v_min_f64 v[2:3], v[0:1], v[10:11]2573; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[10:11]2574; GFX8-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2575; GFX8-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2576; GFX8-NEXT:    v_min_f64 v[2:3], v[0:1], v[12:13]2577; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[12:13]2578; GFX8-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2579; GFX8-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2580; GFX8-NEXT:    v_min_f64 v[2:3], v[0:1], v[14:15]2581; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[14:15]2582; GFX8-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2583; GFX8-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2584; GFX8-NEXT:    v_min_f64 v[2:3], v[0:1], v[16:17]2585; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[16:17]2586; GFX8-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2587; GFX8-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2588; GFX8-NEXT:    v_min_f64 v[2:3], v[0:1], v[18:19]2589; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[18:19]2590; GFX8-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2591; GFX8-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2592; GFX8-NEXT:    v_min_f64 v[2:3], v[0:1], v[20:21]2593; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[20:21]2594; GFX8-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2595; GFX8-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2596; GFX8-NEXT:    v_min_f64 v[2:3], v[0:1], v[22:23]2597; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[22:23]2598; GFX8-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2599; GFX8-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2600; GFX8-NEXT:    v_min_f64 v[2:3], v[0:1], v[24:25]2601; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[24:25]2602; GFX8-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2603; GFX8-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2604; GFX8-NEXT:    v_min_f64 v[2:3], v[0:1], v[26:27]2605; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[26:27]2606; GFX8-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2607; GFX8-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2608; GFX8-NEXT:    v_min_f64 v[2:3], v[0:1], v[28:29]2609; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[28:29]2610; GFX8-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2611; GFX8-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2612; GFX8-NEXT:    s_waitcnt vmcnt(0)2613; GFX8-NEXT:    v_min_f64 v[2:3], v[0:1], v[30:31]2614; GFX8-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[30:31]2615; GFX8-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2616; GFX8-NEXT:    v_cndmask_b32_e32 v1, v3, v33, vcc2617; GFX8-NEXT:    s_setpc_b64 s[30:31]2618;2619; GFX9-LABEL: test_vector_reduce_fminimum_v16double:2620; GFX9:       ; %bb.0: ; %entry2621; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2622; GFX9-NEXT:    scratch_load_dword v31, off, s322623; GFX9-NEXT:    v_min_f64 v[32:33], v[0:1], v[2:3]2624; GFX9-NEXT:    v_mov_b32_e32 v34, 0x7ff800002625; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]2626; GFX9-NEXT:    s_nop 12627; GFX9-NEXT:    v_cndmask_b32_e32 v1, v33, v34, vcc2628; GFX9-NEXT:    v_cndmask_b32_e64 v0, v32, 0, vcc2629; GFX9-NEXT:    v_min_f64 v[2:3], v[0:1], v[4:5]2630; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]2631; GFX9-NEXT:    s_nop 12632; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v34, vcc2633; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2634; GFX9-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]2635; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[6:7]2636; GFX9-NEXT:    s_nop 12637; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v34, vcc2638; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2639; GFX9-NEXT:    v_min_f64 v[2:3], v[0:1], v[8:9]2640; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[8:9]2641; GFX9-NEXT:    s_nop 12642; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v34, vcc2643; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2644; GFX9-NEXT:    v_min_f64 v[2:3], v[0:1], v[10:11]2645; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[10:11]2646; GFX9-NEXT:    s_nop 12647; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v34, vcc2648; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2649; GFX9-NEXT:    v_min_f64 v[2:3], v[0:1], v[12:13]2650; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[12:13]2651; GFX9-NEXT:    s_nop 12652; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v34, vcc2653; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2654; GFX9-NEXT:    v_min_f64 v[2:3], v[0:1], v[14:15]2655; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[14:15]2656; GFX9-NEXT:    s_nop 12657; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v34, vcc2658; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2659; GFX9-NEXT:    v_min_f64 v[2:3], v[0:1], v[16:17]2660; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[16:17]2661; GFX9-NEXT:    s_nop 12662; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v34, vcc2663; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2664; GFX9-NEXT:    v_min_f64 v[2:3], v[0:1], v[18:19]2665; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[18:19]2666; GFX9-NEXT:    s_nop 12667; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v34, vcc2668; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2669; GFX9-NEXT:    v_min_f64 v[2:3], v[0:1], v[20:21]2670; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[20:21]2671; GFX9-NEXT:    s_nop 12672; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v34, vcc2673; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2674; GFX9-NEXT:    v_min_f64 v[2:3], v[0:1], v[22:23]2675; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[22:23]2676; GFX9-NEXT:    s_nop 12677; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v34, vcc2678; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2679; GFX9-NEXT:    v_min_f64 v[2:3], v[0:1], v[24:25]2680; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[24:25]2681; GFX9-NEXT:    s_nop 12682; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v34, vcc2683; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2684; GFX9-NEXT:    v_min_f64 v[2:3], v[0:1], v[26:27]2685; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[26:27]2686; GFX9-NEXT:    s_nop 12687; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v34, vcc2688; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2689; GFX9-NEXT:    v_min_f64 v[2:3], v[0:1], v[28:29]2690; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[28:29]2691; GFX9-NEXT:    s_nop 12692; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v34, vcc2693; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2694; GFX9-NEXT:    s_waitcnt vmcnt(0)2695; GFX9-NEXT:    v_min_f64 v[2:3], v[0:1], v[30:31]2696; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[30:31]2697; GFX9-NEXT:    s_nop 12698; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc2699; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v34, vcc2700; GFX9-NEXT:    s_setpc_b64 s[30:31]2701;2702; GFX10-LABEL: test_vector_reduce_fminimum_v16double:2703; GFX10:       ; %bb.0: ; %entry2704; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2705; GFX10-NEXT:    v_min_f64 v[31:32], v[0:1], v[2:3]2706; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[2:3]2707; GFX10-NEXT:    v_cndmask_b32_e64 v1, v32, 0x7ff80000, vcc_lo2708; GFX10-NEXT:    v_cndmask_b32_e64 v0, v31, 0, vcc_lo2709; GFX10-NEXT:    buffer_load_dword v31, off, s[0:3], s322710; GFX10-NEXT:    v_min_f64 v[2:3], v[0:1], v[4:5]2711; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[4:5]2712; GFX10-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2713; GFX10-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2714; GFX10-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]2715; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[6:7]2716; GFX10-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2717; GFX10-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2718; GFX10-NEXT:    v_min_f64 v[2:3], v[0:1], v[8:9]2719; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[8:9]2720; GFX10-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2721; GFX10-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2722; GFX10-NEXT:    v_min_f64 v[2:3], v[0:1], v[10:11]2723; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[10:11]2724; GFX10-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2725; GFX10-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2726; GFX10-NEXT:    v_min_f64 v[2:3], v[0:1], v[12:13]2727; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[12:13]2728; GFX10-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2729; GFX10-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2730; GFX10-NEXT:    v_min_f64 v[2:3], v[0:1], v[14:15]2731; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[14:15]2732; GFX10-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2733; GFX10-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2734; GFX10-NEXT:    v_min_f64 v[2:3], v[0:1], v[16:17]2735; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[16:17]2736; GFX10-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2737; GFX10-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2738; GFX10-NEXT:    v_min_f64 v[2:3], v[0:1], v[18:19]2739; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[18:19]2740; GFX10-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2741; GFX10-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2742; GFX10-NEXT:    v_min_f64 v[2:3], v[0:1], v[20:21]2743; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[20:21]2744; GFX10-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2745; GFX10-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2746; GFX10-NEXT:    v_min_f64 v[2:3], v[0:1], v[22:23]2747; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[22:23]2748; GFX10-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2749; GFX10-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2750; GFX10-NEXT:    v_min_f64 v[2:3], v[0:1], v[24:25]2751; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[24:25]2752; GFX10-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2753; GFX10-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2754; GFX10-NEXT:    v_min_f64 v[2:3], v[0:1], v[26:27]2755; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[26:27]2756; GFX10-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2757; GFX10-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2758; GFX10-NEXT:    v_min_f64 v[2:3], v[0:1], v[28:29]2759; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[28:29]2760; GFX10-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2761; GFX10-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2762; GFX10-NEXT:    s_waitcnt vmcnt(0)2763; GFX10-NEXT:    v_min_f64 v[2:3], v[0:1], v[30:31]2764; GFX10-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[30:31]2765; GFX10-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2766; GFX10-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2767; GFX10-NEXT:    s_setpc_b64 s[30:31]2768;2769; GFX11-LABEL: test_vector_reduce_fminimum_v16double:2770; GFX11:       ; %bb.0: ; %entry2771; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2772; GFX11-NEXT:    v_min_f64 v[31:32], v[0:1], v[2:3]2773; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[2:3]2774; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_3)2775; GFX11-NEXT:    v_cndmask_b32_e64 v1, v32, 0x7ff80000, vcc_lo2776; GFX11-NEXT:    v_cndmask_b32_e64 v0, v31, 0, vcc_lo2777; GFX11-NEXT:    scratch_load_b32 v31, off, s322778; GFX11-NEXT:    v_min_f64 v[2:3], v[0:1], v[4:5]2779; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[4:5]2780; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_3)2781; GFX11-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2782; GFX11-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2783; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)2784; GFX11-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]2785; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[6:7]2786; GFX11-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2787; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1)2788; GFX11-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2789; GFX11-NEXT:    v_min_f64 v[2:3], v[0:1], v[8:9]2790; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[8:9]2791; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_3)2792; GFX11-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2793; GFX11-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2794; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)2795; GFX11-NEXT:    v_min_f64 v[2:3], v[0:1], v[10:11]2796; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[10:11]2797; GFX11-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2798; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1)2799; GFX11-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2800; GFX11-NEXT:    v_min_f64 v[2:3], v[0:1], v[12:13]2801; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[12:13]2802; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_3)2803; GFX11-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2804; GFX11-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2805; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)2806; GFX11-NEXT:    v_min_f64 v[2:3], v[0:1], v[14:15]2807; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[14:15]2808; GFX11-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2809; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1)2810; GFX11-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2811; GFX11-NEXT:    v_min_f64 v[2:3], v[0:1], v[16:17]2812; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[16:17]2813; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_3)2814; GFX11-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2815; GFX11-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2816; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)2817; GFX11-NEXT:    v_min_f64 v[2:3], v[0:1], v[18:19]2818; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[18:19]2819; GFX11-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2820; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1)2821; GFX11-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2822; GFX11-NEXT:    v_min_f64 v[2:3], v[0:1], v[20:21]2823; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[20:21]2824; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_3)2825; GFX11-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2826; GFX11-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2827; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)2828; GFX11-NEXT:    v_min_f64 v[2:3], v[0:1], v[22:23]2829; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[22:23]2830; GFX11-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2831; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1)2832; GFX11-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2833; GFX11-NEXT:    v_min_f64 v[2:3], v[0:1], v[24:25]2834; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[24:25]2835; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_3)2836; GFX11-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2837; GFX11-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2838; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)2839; GFX11-NEXT:    v_min_f64 v[2:3], v[0:1], v[26:27]2840; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[26:27]2841; GFX11-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2842; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1)2843; GFX11-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2844; GFX11-NEXT:    v_min_f64 v[2:3], v[0:1], v[28:29]2845; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[28:29]2846; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_3)2847; GFX11-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2848; GFX11-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2849; GFX11-NEXT:    s_waitcnt vmcnt(0)2850; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)2851; GFX11-NEXT:    v_min_f64 v[2:3], v[0:1], v[30:31]2852; GFX11-NEXT:    v_cmp_u_f64_e32 vcc_lo, v[0:1], v[30:31]2853; GFX11-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc_lo2854; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_3)2855; GFX11-NEXT:    v_cndmask_b32_e64 v1, v3, 0x7ff80000, vcc_lo2856; GFX11-NEXT:    s_setpc_b64 s[30:31]2857;2858; GFX12-SDAG-LABEL: test_vector_reduce_fminimum_v16double:2859; GFX12-SDAG:       ; %bb.0: ; %entry2860; GFX12-SDAG-NEXT:    s_wait_loadcnt_dscnt 0x02861; GFX12-SDAG-NEXT:    s_wait_expcnt 0x02862; GFX12-SDAG-NEXT:    s_wait_samplecnt 0x02863; GFX12-SDAG-NEXT:    s_wait_bvhcnt 0x02864; GFX12-SDAG-NEXT:    s_wait_kmcnt 0x02865; GFX12-SDAG-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[2:3]2866; GFX12-SDAG-NEXT:    scratch_load_b32 v31, off, s322867; GFX12-SDAG-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[4:5]2868; GFX12-SDAG-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2869; GFX12-SDAG-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[6:7]2870; GFX12-SDAG-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[8:9]2871; GFX12-SDAG-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2872; GFX12-SDAG-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[10:11]2873; GFX12-SDAG-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[12:13]2874; GFX12-SDAG-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2875; GFX12-SDAG-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[14:15]2876; GFX12-SDAG-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[16:17]2877; GFX12-SDAG-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2878; GFX12-SDAG-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[18:19]2879; GFX12-SDAG-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[20:21]2880; GFX12-SDAG-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2881; GFX12-SDAG-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[22:23]2882; GFX12-SDAG-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[24:25]2883; GFX12-SDAG-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2884; GFX12-SDAG-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[26:27]2885; GFX12-SDAG-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[28:29]2886; GFX12-SDAG-NEXT:    s_wait_loadcnt 0x02887; GFX12-SDAG-NEXT:    s_delay_alu instid0(VALU_DEP_1)2888; GFX12-SDAG-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[30:31]2889; GFX12-SDAG-NEXT:    s_setpc_b64 s[30:31]2890;2891; GFX12-GISEL-LABEL: test_vector_reduce_fminimum_v16double:2892; GFX12-GISEL:       ; %bb.0: ; %entry2893; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x02894; GFX12-GISEL-NEXT:    s_wait_expcnt 0x02895; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x02896; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x02897; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x02898; GFX12-GISEL-NEXT:    scratch_load_b32 v31, off, s322899; GFX12-GISEL-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[2:3]2900; GFX12-GISEL-NEXT:    v_minimum_f64 v[2:3], v[4:5], v[6:7]2901; GFX12-GISEL-NEXT:    v_minimum_f64 v[4:5], v[8:9], v[10:11]2902; GFX12-GISEL-NEXT:    v_minimum_f64 v[6:7], v[12:13], v[14:15]2903; GFX12-GISEL-NEXT:    v_minimum_f64 v[8:9], v[16:17], v[18:19]2904; GFX12-GISEL-NEXT:    v_minimum_f64 v[10:11], v[20:21], v[22:23]2905; GFX12-GISEL-NEXT:    v_minimum_f64 v[12:13], v[24:25], v[26:27]2906; GFX12-GISEL-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[2:3]2907; GFX12-GISEL-NEXT:    v_minimum_f64 v[2:3], v[4:5], v[6:7]2908; GFX12-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_2)2909; GFX12-GISEL-NEXT:    v_minimum_f64 v[4:5], v[8:9], v[10:11]2910; GFX12-GISEL-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[2:3]2911; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x02912; GFX12-GISEL-NEXT:    v_minimum_f64 v[14:15], v[28:29], v[30:31]2913; GFX12-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2914; GFX12-GISEL-NEXT:    v_minimum_f64 v[6:7], v[12:13], v[14:15]2915; GFX12-GISEL-NEXT:    v_minimum_f64 v[2:3], v[4:5], v[6:7]2916; GFX12-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)2917; GFX12-GISEL-NEXT:    v_minimum_f64 v[0:1], v[0:1], v[2:3]2918; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]2919entry:2920  %res = call double @llvm.vector.reduce.fminimum.v16double(<16 x double> %v)2921  ret double %res2922}2923 2924declare half @llvm.vector.reduce.fminimum.v2half(<2 x half>)2925declare half @llvm.vector.reduce.fminimum.v3half(<3 x half>)2926declare half @llvm.vector.reduce.fminimum.v4half(<4 x half>)2927declare half @llvm.vector.reduce.fminimum.v8half(<8 x half>)2928declare half @llvm.vector.reduce.fminimum.v16half(<16 x half>)2929declare float @llvm.vector.reduce.fminimum.v2float(<2 x float>)2930declare float @llvm.vector.reduce.fminimum.v3float(<3 x float>)2931declare float @llvm.vector.reduce.fminimum.v4float(<4 x float>)2932declare float @llvm.vector.reduce.fminimum.v8float(<8 x float>)2933declare float @llvm.vector.reduce.fminimum.v16float(<16 x float>)2934declare double @llvm.vector.reduce.fminimum.v2double(<2 x double>)2935declare double @llvm.vector.reduce.fminimum.v3double(<3 x double>)2936declare double @llvm.vector.reduce.fminimum.v4double(<4 x double>)2937declare double @llvm.vector.reduce.fminimum.v8double(<8 x double>)2938declare double @llvm.vector.reduce.fminimum.v16double(<16 x double>)2939;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:2940; GFX10-SDAG: {{.*}}2941; GFX11-SDAG: {{.*}}2942; GFX7-SDAG: {{.*}}2943; GFX8-SDAG: {{.*}}2944; GFX9-SDAG: {{.*}}2945