8695 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-amd-amdhsa -mcpu=gfx700 < %s | FileCheck -check-prefixes=GFX7,GFX7-SDAG %s3; RUN: llc -global-isel -mtriple=amdgcn-amd-amdhsa -mcpu=gfx700 < %s | FileCheck -check-prefixes=GFX7,GFX7-GISEL %s4 5; RUN: llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx803 < %s | FileCheck -check-prefixes=GFX8,GFX8-SDAG %s6; RUN: llc -global-isel -mtriple=amdgcn-amd-amdhsa -mcpu=gfx803 < %s | FileCheck -check-prefixes=GFX8,GFX8-GISEL %s7 8; RUN: llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 < %s | FileCheck -check-prefixes=GFX9,GFX900,GFX9-SDAG,GFX900-SDAG %s9; RUN: llc -global-isel -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 < %s | FileCheck -check-prefixes=GFX9,GFX900,GFX9-GISEL,GFX900-GISEL %s10 11; RUN: llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx950 < %s | FileCheck -check-prefixes=GFX9,GFX950,GFX9-SDAG,GFX950-SDAG %s12; RUN: llc -global-isel -mtriple=amdgcn-amd-amdhsa -mcpu=gfx950 < %s | FileCheck -check-prefixes=GFX9,GFX950,GFX9-GISEL,GFX950-GISEL %s13 14; RUN: llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1030 < %s | FileCheck -check-prefixes=GFX10,GFX10-SDAG %s15; RUN: llc -global-isel -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1030 < %s | FileCheck -check-prefixes=GFX10,GFX10-GISEL %s16 17; RUN: llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1100 -mattr=+real-true16 < %s | FileCheck -check-prefixes=GFX11,GFX11-TRUE16,GFX11-SDAG,GFX11-TRUE16-SDAG %s18; RUN: llc -global-isel -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1100 -mattr=+real-true16 < %s | FileCheck -check-prefixes=GFX11,GFX11-TRUE16,GFX11-GISEL,GFX11-TRUE16-GISEL %s19 20; RUN: llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1100 -mattr=-real-true16 < %s | FileCheck -check-prefixes=GFX11,GFX11-FAKE16,GFX11-SDAG,GFX11-FAKE16-SDAG %s21; RUN: llc -global-isel -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1100 -mattr=-real-true16 < %s | FileCheck -check-prefixes=GFX11,GFX11-FAKE16,GFX11-GISEL,GFX11-FAKE16-GISEL %s22 23; RUN: llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1200 -mattr=+real-true16 < %s | FileCheck -check-prefixes=GFX12,GFX12-TRUE16,GFX12-SDAG,GFX12-TRUE16-SDAG %s24; RUN: llc -global-isel -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1200 -mattr=+real-true16 < %s | FileCheck -check-prefixes=GFX12,GFX12-TRUE16,GFX12-GISEL,GFX12-TRUE16-GISEL %s25 26; RUN: llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1200 -mattr=-real-true16 < %s | FileCheck -check-prefixes=GFX12,GFX12-FAKE16,GFX12-SDAG,GFX12-FAKE16-SDAG %s27; RUN: llc -global-isel -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1200 -mattr=-real-true16 < %s | FileCheck -check-prefixes=GFX12,GFX12-FAKE16,GFX12-GISEL,GFX12-FAKE16-GISEL %s28 29define half @v_minimumnum_f16(half %x, half %y) {30; GFX7-SDAG-LABEL: v_minimumnum_f16:31; GFX7-SDAG: ; %bb.0:32; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)33; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v034; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v1, v135; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v036; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v1, v137; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v138; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]39;40; GFX7-GISEL-LABEL: v_minimumnum_f16:41; GFX7-GISEL: ; %bb.0:42; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)43; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v0, v044; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v1, v145; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v146; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v0, v047; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]48;49; GFX8-SDAG-LABEL: v_minimumnum_f16:50; GFX8-SDAG: ; %bb.0:51; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)52; GFX8-SDAG-NEXT: v_max_f16_e32 v1, v1, v153; GFX8-SDAG-NEXT: v_max_f16_e32 v0, v0, v054; GFX8-SDAG-NEXT: v_min_f16_e32 v0, v0, v155; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]56;57; GFX8-GISEL-LABEL: v_minimumnum_f16:58; GFX8-GISEL: ; %bb.0:59; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)60; GFX8-GISEL-NEXT: v_max_f16_e32 v0, v0, v061; GFX8-GISEL-NEXT: v_max_f16_e32 v1, v1, v162; GFX8-GISEL-NEXT: v_min_f16_e32 v0, v0, v163; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]64;65; GFX9-SDAG-LABEL: v_minimumnum_f16:66; GFX9-SDAG: ; %bb.0:67; GFX9-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)68; GFX9-SDAG-NEXT: v_max_f16_e32 v1, v1, v169; GFX9-SDAG-NEXT: v_max_f16_e32 v0, v0, v070; GFX9-SDAG-NEXT: v_min_f16_e32 v0, v0, v171; GFX9-SDAG-NEXT: s_setpc_b64 s[30:31]72;73; GFX9-GISEL-LABEL: v_minimumnum_f16:74; GFX9-GISEL: ; %bb.0:75; GFX9-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)76; GFX9-GISEL-NEXT: v_max_f16_e32 v0, v0, v077; GFX9-GISEL-NEXT: v_max_f16_e32 v1, v1, v178; GFX9-GISEL-NEXT: v_min_f16_e32 v0, v0, v179; GFX9-GISEL-NEXT: s_setpc_b64 s[30:31]80;81; GFX10-SDAG-LABEL: v_minimumnum_f16:82; GFX10-SDAG: ; %bb.0:83; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)84; GFX10-SDAG-NEXT: v_max_f16_e32 v1, v1, v185; GFX10-SDAG-NEXT: v_max_f16_e32 v0, v0, v086; GFX10-SDAG-NEXT: v_min_f16_e32 v0, v0, v187; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]88;89; GFX10-GISEL-LABEL: v_minimumnum_f16:90; GFX10-GISEL: ; %bb.0:91; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)92; GFX10-GISEL-NEXT: v_max_f16_e32 v0, v0, v093; GFX10-GISEL-NEXT: v_max_f16_e32 v1, v1, v194; GFX10-GISEL-NEXT: v_min_f16_e32 v0, v0, v195; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]96;97; GFX11-TRUE16-SDAG-LABEL: v_minimumnum_f16:98; GFX11-TRUE16-SDAG: ; %bb.0:99; GFX11-TRUE16-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)100; GFX11-TRUE16-SDAG-NEXT: v_max_f16_e32 v0.h, v1.l, v1.l101; GFX11-TRUE16-SDAG-NEXT: v_max_f16_e32 v0.l, v0.l, v0.l102; GFX11-TRUE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)103; GFX11-TRUE16-SDAG-NEXT: v_min_f16_e32 v0.l, v0.l, v0.h104; GFX11-TRUE16-SDAG-NEXT: s_setpc_b64 s[30:31]105;106; GFX11-TRUE16-GISEL-LABEL: v_minimumnum_f16:107; GFX11-TRUE16-GISEL: ; %bb.0:108; GFX11-TRUE16-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)109; GFX11-TRUE16-GISEL-NEXT: v_max_f16_e32 v0.l, v0.l, v0.l110; GFX11-TRUE16-GISEL-NEXT: v_max_f16_e32 v0.h, v1.l, v1.l111; GFX11-TRUE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)112; GFX11-TRUE16-GISEL-NEXT: v_min_f16_e32 v0.l, v0.l, v0.h113; GFX11-TRUE16-GISEL-NEXT: s_setpc_b64 s[30:31]114;115; GFX11-FAKE16-SDAG-LABEL: v_minimumnum_f16:116; GFX11-FAKE16-SDAG: ; %bb.0:117; GFX11-FAKE16-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)118; GFX11-FAKE16-SDAG-NEXT: v_max_f16_e32 v1, v1, v1119; GFX11-FAKE16-SDAG-NEXT: v_max_f16_e32 v0, v0, v0120; GFX11-FAKE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)121; GFX11-FAKE16-SDAG-NEXT: v_min_f16_e32 v0, v0, v1122; GFX11-FAKE16-SDAG-NEXT: s_setpc_b64 s[30:31]123;124; GFX11-FAKE16-GISEL-LABEL: v_minimumnum_f16:125; GFX11-FAKE16-GISEL: ; %bb.0:126; GFX11-FAKE16-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)127; GFX11-FAKE16-GISEL-NEXT: v_max_f16_e32 v0, v0, v0128; GFX11-FAKE16-GISEL-NEXT: v_max_f16_e32 v1, v1, v1129; GFX11-FAKE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)130; GFX11-FAKE16-GISEL-NEXT: v_min_f16_e32 v0, v0, v1131; GFX11-FAKE16-GISEL-NEXT: s_setpc_b64 s[30:31]132;133; GFX12-TRUE16-SDAG-LABEL: v_minimumnum_f16:134; GFX12-TRUE16-SDAG: ; %bb.0:135; GFX12-TRUE16-SDAG-NEXT: s_wait_loadcnt_dscnt 0x0136; GFX12-TRUE16-SDAG-NEXT: s_wait_expcnt 0x0137; GFX12-TRUE16-SDAG-NEXT: s_wait_samplecnt 0x0138; GFX12-TRUE16-SDAG-NEXT: s_wait_bvhcnt 0x0139; GFX12-TRUE16-SDAG-NEXT: s_wait_kmcnt 0x0140; GFX12-TRUE16-SDAG-NEXT: v_max_num_f16_e32 v0.h, v1.l, v1.l141; GFX12-TRUE16-SDAG-NEXT: v_max_num_f16_e32 v0.l, v0.l, v0.l142; GFX12-TRUE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)143; GFX12-TRUE16-SDAG-NEXT: v_min_num_f16_e32 v0.l, v0.l, v0.h144; GFX12-TRUE16-SDAG-NEXT: s_setpc_b64 s[30:31]145;146; GFX12-TRUE16-GISEL-LABEL: v_minimumnum_f16:147; GFX12-TRUE16-GISEL: ; %bb.0:148; GFX12-TRUE16-GISEL-NEXT: s_wait_loadcnt_dscnt 0x0149; GFX12-TRUE16-GISEL-NEXT: s_wait_expcnt 0x0150; GFX12-TRUE16-GISEL-NEXT: s_wait_samplecnt 0x0151; GFX12-TRUE16-GISEL-NEXT: s_wait_bvhcnt 0x0152; GFX12-TRUE16-GISEL-NEXT: s_wait_kmcnt 0x0153; GFX12-TRUE16-GISEL-NEXT: v_max_num_f16_e32 v0.l, v0.l, v0.l154; GFX12-TRUE16-GISEL-NEXT: v_max_num_f16_e32 v0.h, v1.l, v1.l155; GFX12-TRUE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)156; GFX12-TRUE16-GISEL-NEXT: v_min_num_f16_e32 v0.l, v0.l, v0.h157; GFX12-TRUE16-GISEL-NEXT: s_setpc_b64 s[30:31]158;159; GFX12-FAKE16-SDAG-LABEL: v_minimumnum_f16:160; GFX12-FAKE16-SDAG: ; %bb.0:161; GFX12-FAKE16-SDAG-NEXT: s_wait_loadcnt_dscnt 0x0162; GFX12-FAKE16-SDAG-NEXT: s_wait_expcnt 0x0163; GFX12-FAKE16-SDAG-NEXT: s_wait_samplecnt 0x0164; GFX12-FAKE16-SDAG-NEXT: s_wait_bvhcnt 0x0165; GFX12-FAKE16-SDAG-NEXT: s_wait_kmcnt 0x0166; GFX12-FAKE16-SDAG-NEXT: v_max_num_f16_e32 v1, v1, v1167; GFX12-FAKE16-SDAG-NEXT: v_max_num_f16_e32 v0, v0, v0168; GFX12-FAKE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)169; GFX12-FAKE16-SDAG-NEXT: v_min_num_f16_e32 v0, v0, v1170; GFX12-FAKE16-SDAG-NEXT: s_setpc_b64 s[30:31]171;172; GFX12-FAKE16-GISEL-LABEL: v_minimumnum_f16:173; GFX12-FAKE16-GISEL: ; %bb.0:174; GFX12-FAKE16-GISEL-NEXT: s_wait_loadcnt_dscnt 0x0175; GFX12-FAKE16-GISEL-NEXT: s_wait_expcnt 0x0176; GFX12-FAKE16-GISEL-NEXT: s_wait_samplecnt 0x0177; GFX12-FAKE16-GISEL-NEXT: s_wait_bvhcnt 0x0178; GFX12-FAKE16-GISEL-NEXT: s_wait_kmcnt 0x0179; GFX12-FAKE16-GISEL-NEXT: v_max_num_f16_e32 v0, v0, v0180; GFX12-FAKE16-GISEL-NEXT: v_max_num_f16_e32 v1, v1, v1181; GFX12-FAKE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)182; GFX12-FAKE16-GISEL-NEXT: v_min_num_f16_e32 v0, v0, v1183; GFX12-FAKE16-GISEL-NEXT: s_setpc_b64 s[30:31]184 %result = call half @llvm.minimumnum.f16(half %x, half %y)185 ret half %result186}187 188define half @v_minimumnum_f16_nnan(half %x, half %y) {189; GFX7-SDAG-LABEL: v_minimumnum_f16_nnan:190; GFX7-SDAG: ; %bb.0:191; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)192; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v1, v1193; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v0194; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v1, v1195; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v0196; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v1197; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]198;199; GFX7-GISEL-LABEL: v_minimumnum_f16_nnan:200; GFX7-GISEL: ; %bb.0:201; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)202; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v0, v0203; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v1, v1204; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v1205; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v0, v0206; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]207;208; GFX8-LABEL: v_minimumnum_f16_nnan:209; GFX8: ; %bb.0:210; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)211; GFX8-NEXT: v_min_f16_e32 v0, v0, v1212; GFX8-NEXT: s_setpc_b64 s[30:31]213;214; GFX9-LABEL: v_minimumnum_f16_nnan:215; GFX9: ; %bb.0:216; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)217; GFX9-NEXT: v_min_f16_e32 v0, v0, v1218; GFX9-NEXT: s_setpc_b64 s[30:31]219;220; GFX10-LABEL: v_minimumnum_f16_nnan:221; GFX10: ; %bb.0:222; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)223; GFX10-NEXT: v_min_f16_e32 v0, v0, v1224; GFX10-NEXT: s_setpc_b64 s[30:31]225;226; GFX11-TRUE16-LABEL: v_minimumnum_f16_nnan:227; GFX11-TRUE16: ; %bb.0:228; GFX11-TRUE16-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)229; GFX11-TRUE16-NEXT: v_min_f16_e32 v0.l, v0.l, v1.l230; GFX11-TRUE16-NEXT: s_setpc_b64 s[30:31]231;232; GFX11-FAKE16-LABEL: v_minimumnum_f16_nnan:233; GFX11-FAKE16: ; %bb.0:234; GFX11-FAKE16-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)235; GFX11-FAKE16-NEXT: v_min_f16_e32 v0, v0, v1236; GFX11-FAKE16-NEXT: s_setpc_b64 s[30:31]237;238; GFX12-TRUE16-LABEL: v_minimumnum_f16_nnan:239; GFX12-TRUE16: ; %bb.0:240; GFX12-TRUE16-NEXT: s_wait_loadcnt_dscnt 0x0241; GFX12-TRUE16-NEXT: s_wait_expcnt 0x0242; GFX12-TRUE16-NEXT: s_wait_samplecnt 0x0243; GFX12-TRUE16-NEXT: s_wait_bvhcnt 0x0244; GFX12-TRUE16-NEXT: s_wait_kmcnt 0x0245; GFX12-TRUE16-NEXT: v_min_num_f16_e32 v0.l, v0.l, v1.l246; GFX12-TRUE16-NEXT: s_setpc_b64 s[30:31]247;248; GFX12-FAKE16-LABEL: v_minimumnum_f16_nnan:249; GFX12-FAKE16: ; %bb.0:250; GFX12-FAKE16-NEXT: s_wait_loadcnt_dscnt 0x0251; GFX12-FAKE16-NEXT: s_wait_expcnt 0x0252; GFX12-FAKE16-NEXT: s_wait_samplecnt 0x0253; GFX12-FAKE16-NEXT: s_wait_bvhcnt 0x0254; GFX12-FAKE16-NEXT: s_wait_kmcnt 0x0255; GFX12-FAKE16-NEXT: v_min_num_f16_e32 v0, v0, v1256; GFX12-FAKE16-NEXT: s_setpc_b64 s[30:31]257 %result = call nnan half @llvm.minimumnum.f16(half %x, half %y)258 ret half %result259}260 261define half @v_minimumnum_f16_1.0(half %x) {262; GFX7-SDAG-LABEL: v_minimumnum_f16_1.0:263; GFX7-SDAG: ; %bb.0:264; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)265; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v0266; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v0267; GFX7-SDAG-NEXT: v_min_f32_e32 v0, 1.0, v0268; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]269;270; GFX7-GISEL-LABEL: v_minimumnum_f16_1.0:271; GFX7-GISEL: ; %bb.0:272; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)273; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v0, v0274; GFX7-GISEL-NEXT: v_min_f32_e32 v0, 1.0, v0275; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v0, v0276; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]277;278; GFX8-LABEL: v_minimumnum_f16_1.0:279; GFX8: ; %bb.0:280; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)281; GFX8-NEXT: v_max_f16_e32 v0, v0, v0282; GFX8-NEXT: v_min_f16_e32 v0, 1.0, v0283; GFX8-NEXT: s_setpc_b64 s[30:31]284;285; GFX9-LABEL: v_minimumnum_f16_1.0:286; GFX9: ; %bb.0:287; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)288; GFX9-NEXT: v_max_f16_e32 v0, v0, v0289; GFX9-NEXT: v_min_f16_e32 v0, 1.0, v0290; GFX9-NEXT: s_setpc_b64 s[30:31]291;292; GFX10-LABEL: v_minimumnum_f16_1.0:293; GFX10: ; %bb.0:294; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)295; GFX10-NEXT: v_max_f16_e32 v0, v0, v0296; GFX10-NEXT: v_min_f16_e32 v0, 1.0, v0297; GFX10-NEXT: s_setpc_b64 s[30:31]298;299; GFX11-TRUE16-LABEL: v_minimumnum_f16_1.0:300; GFX11-TRUE16: ; %bb.0:301; GFX11-TRUE16-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)302; GFX11-TRUE16-NEXT: v_max_f16_e32 v0.l, v0.l, v0.l303; GFX11-TRUE16-NEXT: s_delay_alu instid0(VALU_DEP_1)304; GFX11-TRUE16-NEXT: v_min_f16_e32 v0.l, 1.0, v0.l305; GFX11-TRUE16-NEXT: s_setpc_b64 s[30:31]306;307; GFX11-FAKE16-LABEL: v_minimumnum_f16_1.0:308; GFX11-FAKE16: ; %bb.0:309; GFX11-FAKE16-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)310; GFX11-FAKE16-NEXT: v_max_f16_e32 v0, v0, v0311; GFX11-FAKE16-NEXT: s_delay_alu instid0(VALU_DEP_1)312; GFX11-FAKE16-NEXT: v_min_f16_e32 v0, 1.0, v0313; GFX11-FAKE16-NEXT: s_setpc_b64 s[30:31]314;315; GFX12-TRUE16-LABEL: v_minimumnum_f16_1.0:316; GFX12-TRUE16: ; %bb.0:317; GFX12-TRUE16-NEXT: s_wait_loadcnt_dscnt 0x0318; GFX12-TRUE16-NEXT: s_wait_expcnt 0x0319; GFX12-TRUE16-NEXT: s_wait_samplecnt 0x0320; GFX12-TRUE16-NEXT: s_wait_bvhcnt 0x0321; GFX12-TRUE16-NEXT: s_wait_kmcnt 0x0322; GFX12-TRUE16-NEXT: v_max_num_f16_e32 v0.l, v0.l, v0.l323; GFX12-TRUE16-NEXT: s_delay_alu instid0(VALU_DEP_1)324; GFX12-TRUE16-NEXT: v_min_num_f16_e32 v0.l, 1.0, v0.l325; GFX12-TRUE16-NEXT: s_setpc_b64 s[30:31]326;327; GFX12-FAKE16-LABEL: v_minimumnum_f16_1.0:328; GFX12-FAKE16: ; %bb.0:329; GFX12-FAKE16-NEXT: s_wait_loadcnt_dscnt 0x0330; GFX12-FAKE16-NEXT: s_wait_expcnt 0x0331; GFX12-FAKE16-NEXT: s_wait_samplecnt 0x0332; GFX12-FAKE16-NEXT: s_wait_bvhcnt 0x0333; GFX12-FAKE16-NEXT: s_wait_kmcnt 0x0334; GFX12-FAKE16-NEXT: v_max_num_f16_e32 v0, v0, v0335; GFX12-FAKE16-NEXT: s_delay_alu instid0(VALU_DEP_1)336; GFX12-FAKE16-NEXT: v_min_num_f16_e32 v0, 1.0, v0337; GFX12-FAKE16-NEXT: s_setpc_b64 s[30:31]338 %result = call half @llvm.minimumnum.f16(half %x, half 1.0)339 ret half %result340}341 342define float @v_minimumnum_f32(float %x, float %y) {343; GFX7-SDAG-LABEL: v_minimumnum_f32:344; GFX7-SDAG: ; %bb.0:345; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)346; GFX7-SDAG-NEXT: v_mul_f32_e32 v1, 1.0, v1347; GFX7-SDAG-NEXT: v_mul_f32_e32 v0, 1.0, v0348; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v1349; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]350;351; GFX7-GISEL-LABEL: v_minimumnum_f32:352; GFX7-GISEL: ; %bb.0:353; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)354; GFX7-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v0355; GFX7-GISEL-NEXT: v_mul_f32_e32 v1, 1.0, v1356; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v1357; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]358;359; GFX8-SDAG-LABEL: v_minimumnum_f32:360; GFX8-SDAG: ; %bb.0:361; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)362; GFX8-SDAG-NEXT: v_mul_f32_e32 v1, 1.0, v1363; GFX8-SDAG-NEXT: v_mul_f32_e32 v0, 1.0, v0364; GFX8-SDAG-NEXT: v_min_f32_e32 v0, v0, v1365; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]366;367; GFX8-GISEL-LABEL: v_minimumnum_f32:368; GFX8-GISEL: ; %bb.0:369; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)370; GFX8-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v0371; GFX8-GISEL-NEXT: v_mul_f32_e32 v1, 1.0, v1372; GFX8-GISEL-NEXT: v_min_f32_e32 v0, v0, v1373; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]374;375; GFX9-SDAG-LABEL: v_minimumnum_f32:376; GFX9-SDAG: ; %bb.0:377; GFX9-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)378; GFX9-SDAG-NEXT: v_max_f32_e32 v1, v1, v1379; GFX9-SDAG-NEXT: v_max_f32_e32 v0, v0, v0380; GFX9-SDAG-NEXT: v_min_f32_e32 v0, v0, v1381; GFX9-SDAG-NEXT: s_setpc_b64 s[30:31]382;383; GFX9-GISEL-LABEL: v_minimumnum_f32:384; GFX9-GISEL: ; %bb.0:385; GFX9-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)386; GFX9-GISEL-NEXT: v_max_f32_e32 v0, v0, v0387; GFX9-GISEL-NEXT: v_max_f32_e32 v1, v1, v1388; GFX9-GISEL-NEXT: v_min_f32_e32 v0, v0, v1389; GFX9-GISEL-NEXT: s_setpc_b64 s[30:31]390;391; GFX10-SDAG-LABEL: v_minimumnum_f32:392; GFX10-SDAG: ; %bb.0:393; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)394; GFX10-SDAG-NEXT: v_max_f32_e32 v1, v1, v1395; GFX10-SDAG-NEXT: v_max_f32_e32 v0, v0, v0396; GFX10-SDAG-NEXT: v_min_f32_e32 v0, v0, v1397; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]398;399; GFX10-GISEL-LABEL: v_minimumnum_f32:400; GFX10-GISEL: ; %bb.0:401; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)402; GFX10-GISEL-NEXT: v_max_f32_e32 v0, v0, v0403; GFX10-GISEL-NEXT: v_max_f32_e32 v1, v1, v1404; GFX10-GISEL-NEXT: v_min_f32_e32 v0, v0, v1405; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]406;407; GFX11-SDAG-LABEL: v_minimumnum_f32:408; GFX11-SDAG: ; %bb.0:409; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)410; GFX11-SDAG-NEXT: v_dual_max_f32 v1, v1, v1 :: v_dual_max_f32 v0, v0, v0411; GFX11-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)412; GFX11-SDAG-NEXT: v_min_f32_e32 v0, v0, v1413; GFX11-SDAG-NEXT: s_setpc_b64 s[30:31]414;415; GFX11-GISEL-LABEL: v_minimumnum_f32:416; GFX11-GISEL: ; %bb.0:417; GFX11-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)418; GFX11-GISEL-NEXT: v_dual_max_f32 v0, v0, v0 :: v_dual_max_f32 v1, v1, v1419; GFX11-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)420; GFX11-GISEL-NEXT: v_min_f32_e32 v0, v0, v1421; GFX11-GISEL-NEXT: s_setpc_b64 s[30:31]422;423; GFX12-SDAG-LABEL: v_minimumnum_f32:424; GFX12-SDAG: ; %bb.0:425; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x0426; GFX12-SDAG-NEXT: s_wait_expcnt 0x0427; GFX12-SDAG-NEXT: s_wait_samplecnt 0x0428; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x0429; GFX12-SDAG-NEXT: s_wait_kmcnt 0x0430; GFX12-SDAG-NEXT: v_dual_max_num_f32 v1, v1, v1 :: v_dual_max_num_f32 v0, v0, v0431; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)432; GFX12-SDAG-NEXT: v_min_num_f32_e32 v0, v0, v1433; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]434;435; GFX12-GISEL-LABEL: v_minimumnum_f32:436; GFX12-GISEL: ; %bb.0:437; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x0438; GFX12-GISEL-NEXT: s_wait_expcnt 0x0439; GFX12-GISEL-NEXT: s_wait_samplecnt 0x0440; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x0441; GFX12-GISEL-NEXT: s_wait_kmcnt 0x0442; GFX12-GISEL-NEXT: v_dual_max_num_f32 v0, v0, v0 :: v_dual_max_num_f32 v1, v1, v1443; GFX12-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)444; GFX12-GISEL-NEXT: v_min_num_f32_e32 v0, v0, v1445; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]446 %result = call float @llvm.minimumnum.f32(float %x, float %y)447 ret float %result448}449 450define float @v_minimumnum_f32_nnan(float %x, float %y) {451; GFX7-LABEL: v_minimumnum_f32_nnan:452; GFX7: ; %bb.0:453; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)454; GFX7-NEXT: v_min_f32_e32 v0, v0, v1455; GFX7-NEXT: s_setpc_b64 s[30:31]456;457; GFX8-LABEL: v_minimumnum_f32_nnan:458; GFX8: ; %bb.0:459; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)460; GFX8-NEXT: v_min_f32_e32 v0, v0, v1461; GFX8-NEXT: s_setpc_b64 s[30:31]462;463; GFX9-LABEL: v_minimumnum_f32_nnan:464; GFX9: ; %bb.0:465; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)466; GFX9-NEXT: v_min_f32_e32 v0, v0, v1467; GFX9-NEXT: s_setpc_b64 s[30:31]468;469; GFX10-LABEL: v_minimumnum_f32_nnan:470; GFX10: ; %bb.0:471; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)472; GFX10-NEXT: v_min_f32_e32 v0, v0, v1473; GFX10-NEXT: s_setpc_b64 s[30:31]474;475; GFX11-LABEL: v_minimumnum_f32_nnan:476; GFX11: ; %bb.0:477; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)478; GFX11-NEXT: v_min_f32_e32 v0, v0, v1479; GFX11-NEXT: s_setpc_b64 s[30:31]480;481; GFX12-LABEL: v_minimumnum_f32_nnan:482; GFX12: ; %bb.0:483; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0484; GFX12-NEXT: s_wait_expcnt 0x0485; GFX12-NEXT: s_wait_samplecnt 0x0486; GFX12-NEXT: s_wait_bvhcnt 0x0487; GFX12-NEXT: s_wait_kmcnt 0x0488; GFX12-NEXT: v_min_num_f32_e32 v0, v0, v1489; GFX12-NEXT: s_setpc_b64 s[30:31]490 %result = call nnan float @llvm.minimumnum.f32(float %x, float %y)491 ret float %result492}493 494define double @v_minimumnum_f64(double %x, double %y) {495; GFX7-SDAG-LABEL: v_minimumnum_f64:496; GFX7-SDAG: ; %bb.0:497; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)498; GFX7-SDAG-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]499; GFX7-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]500; GFX7-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]501; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]502;503; GFX7-GISEL-LABEL: v_minimumnum_f64:504; GFX7-GISEL: ; %bb.0:505; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)506; GFX7-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]507; GFX7-GISEL-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]508; GFX7-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]509; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]510;511; GFX8-SDAG-LABEL: v_minimumnum_f64:512; GFX8-SDAG: ; %bb.0:513; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)514; GFX8-SDAG-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]515; GFX8-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]516; GFX8-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]517; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]518;519; GFX8-GISEL-LABEL: v_minimumnum_f64:520; GFX8-GISEL: ; %bb.0:521; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)522; GFX8-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]523; GFX8-GISEL-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]524; GFX8-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]525; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]526;527; GFX9-SDAG-LABEL: v_minimumnum_f64:528; GFX9-SDAG: ; %bb.0:529; GFX9-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)530; GFX9-SDAG-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]531; GFX9-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]532; GFX9-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]533; GFX9-SDAG-NEXT: s_setpc_b64 s[30:31]534;535; GFX9-GISEL-LABEL: v_minimumnum_f64:536; GFX9-GISEL: ; %bb.0:537; GFX9-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)538; GFX9-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]539; GFX9-GISEL-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]540; GFX9-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]541; GFX9-GISEL-NEXT: s_setpc_b64 s[30:31]542;543; GFX10-SDAG-LABEL: v_minimumnum_f64:544; GFX10-SDAG: ; %bb.0:545; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)546; GFX10-SDAG-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]547; GFX10-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]548; GFX10-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]549; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]550;551; GFX10-GISEL-LABEL: v_minimumnum_f64:552; GFX10-GISEL: ; %bb.0:553; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)554; GFX10-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]555; GFX10-GISEL-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]556; GFX10-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]557; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]558;559; GFX11-SDAG-LABEL: v_minimumnum_f64:560; GFX11-SDAG: ; %bb.0:561; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)562; GFX11-SDAG-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]563; GFX11-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]564; GFX11-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)565; GFX11-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]566; GFX11-SDAG-NEXT: s_setpc_b64 s[30:31]567;568; GFX11-GISEL-LABEL: v_minimumnum_f64:569; GFX11-GISEL: ; %bb.0:570; GFX11-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)571; GFX11-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]572; GFX11-GISEL-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]573; GFX11-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)574; GFX11-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]575; GFX11-GISEL-NEXT: s_setpc_b64 s[30:31]576;577; GFX12-SDAG-LABEL: v_minimumnum_f64:578; GFX12-SDAG: ; %bb.0:579; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x0580; GFX12-SDAG-NEXT: s_wait_expcnt 0x0581; GFX12-SDAG-NEXT: s_wait_samplecnt 0x0582; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x0583; GFX12-SDAG-NEXT: s_wait_kmcnt 0x0584; GFX12-SDAG-NEXT: v_max_num_f64_e32 v[2:3], v[2:3], v[2:3]585; GFX12-SDAG-NEXT: v_max_num_f64_e32 v[0:1], v[0:1], v[0:1]586; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)587; GFX12-SDAG-NEXT: v_min_num_f64_e32 v[0:1], v[0:1], v[2:3]588; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]589;590; GFX12-GISEL-LABEL: v_minimumnum_f64:591; GFX12-GISEL: ; %bb.0:592; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x0593; GFX12-GISEL-NEXT: s_wait_expcnt 0x0594; GFX12-GISEL-NEXT: s_wait_samplecnt 0x0595; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x0596; GFX12-GISEL-NEXT: s_wait_kmcnt 0x0597; GFX12-GISEL-NEXT: v_max_num_f64_e32 v[0:1], v[0:1], v[0:1]598; GFX12-GISEL-NEXT: v_max_num_f64_e32 v[2:3], v[2:3], v[2:3]599; GFX12-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)600; GFX12-GISEL-NEXT: v_min_num_f64_e32 v[0:1], v[0:1], v[2:3]601; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]602 %result = call double @llvm.minimumnum.f64(double %x, double %y)603 ret double %result604}605 606define double @v_minimumnum_f64_nnan(double %x, double %y) {607; GFX7-LABEL: v_minimumnum_f64_nnan:608; GFX7: ; %bb.0:609; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)610; GFX7-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]611; GFX7-NEXT: s_setpc_b64 s[30:31]612;613; GFX8-LABEL: v_minimumnum_f64_nnan:614; GFX8: ; %bb.0:615; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)616; GFX8-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]617; GFX8-NEXT: s_setpc_b64 s[30:31]618;619; GFX9-LABEL: v_minimumnum_f64_nnan:620; GFX9: ; %bb.0:621; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)622; GFX9-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]623; GFX9-NEXT: s_setpc_b64 s[30:31]624;625; GFX10-LABEL: v_minimumnum_f64_nnan:626; GFX10: ; %bb.0:627; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)628; GFX10-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]629; GFX10-NEXT: s_setpc_b64 s[30:31]630;631; GFX11-LABEL: v_minimumnum_f64_nnan:632; GFX11: ; %bb.0:633; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)634; GFX11-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]635; GFX11-NEXT: s_setpc_b64 s[30:31]636;637; GFX12-LABEL: v_minimumnum_f64_nnan:638; GFX12: ; %bb.0:639; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0640; GFX12-NEXT: s_wait_expcnt 0x0641; GFX12-NEXT: s_wait_samplecnt 0x0642; GFX12-NEXT: s_wait_bvhcnt 0x0643; GFX12-NEXT: s_wait_kmcnt 0x0644; GFX12-NEXT: v_min_num_f64_e32 v[0:1], v[0:1], v[2:3]645; GFX12-NEXT: s_setpc_b64 s[30:31]646 %result = call nnan double @llvm.minimumnum.f64(double %x, double %y)647 ret double %result648}649 650define float @v_minimumnum_f32_1.0(float %x) {651; GFX7-LABEL: v_minimumnum_f32_1.0:652; GFX7: ; %bb.0:653; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)654; GFX7-NEXT: v_mul_f32_e32 v0, 1.0, v0655; GFX7-NEXT: v_min_f32_e32 v0, 1.0, v0656; GFX7-NEXT: s_setpc_b64 s[30:31]657;658; GFX8-LABEL: v_minimumnum_f32_1.0:659; GFX8: ; %bb.0:660; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)661; GFX8-NEXT: v_mul_f32_e32 v0, 1.0, v0662; GFX8-NEXT: v_min_f32_e32 v0, 1.0, v0663; GFX8-NEXT: s_setpc_b64 s[30:31]664;665; GFX9-LABEL: v_minimumnum_f32_1.0:666; GFX9: ; %bb.0:667; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)668; GFX9-NEXT: v_max_f32_e32 v0, v0, v0669; GFX9-NEXT: v_min_f32_e32 v0, 1.0, v0670; GFX9-NEXT: s_setpc_b64 s[30:31]671;672; GFX10-LABEL: v_minimumnum_f32_1.0:673; GFX10: ; %bb.0:674; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)675; GFX10-NEXT: v_max_f32_e32 v0, v0, v0676; GFX10-NEXT: v_min_f32_e32 v0, 1.0, v0677; GFX10-NEXT: s_setpc_b64 s[30:31]678;679; GFX11-LABEL: v_minimumnum_f32_1.0:680; GFX11: ; %bb.0:681; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)682; GFX11-NEXT: v_max_f32_e32 v0, v0, v0683; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_1)684; GFX11-NEXT: v_min_f32_e32 v0, 1.0, v0685; GFX11-NEXT: s_setpc_b64 s[30:31]686;687; GFX12-LABEL: v_minimumnum_f32_1.0:688; GFX12: ; %bb.0:689; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0690; GFX12-NEXT: s_wait_expcnt 0x0691; GFX12-NEXT: s_wait_samplecnt 0x0692; GFX12-NEXT: s_wait_bvhcnt 0x0693; GFX12-NEXT: s_wait_kmcnt 0x0694; GFX12-NEXT: v_max_num_f32_e32 v0, v0, v0695; GFX12-NEXT: s_delay_alu instid0(VALU_DEP_1)696; GFX12-NEXT: v_min_num_f32_e32 v0, 1.0, v0697; GFX12-NEXT: s_setpc_b64 s[30:31]698 %result = call float @llvm.minimumnum.f32(float %x, float 1.0)699 ret float %result700}701 702define float @v_minimumnum_f32_rhs_not_snan(float %x, float %y) {703; GFX7-LABEL: v_minimumnum_f32_rhs_not_snan:704; GFX7: ; %bb.0:705; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)706; GFX7-NEXT: v_mul_f32_e32 v1, 1.0, v1707; GFX7-NEXT: v_mul_f32_e32 v0, 1.0, v0708; GFX7-NEXT: v_min_f32_e32 v0, v0, v1709; GFX7-NEXT: s_setpc_b64 s[30:31]710;711; GFX8-LABEL: v_minimumnum_f32_rhs_not_snan:712; GFX8: ; %bb.0:713; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)714; GFX8-NEXT: v_mul_f32_e32 v1, 1.0, v1715; GFX8-NEXT: v_mul_f32_e32 v0, 1.0, v0716; GFX8-NEXT: v_min_f32_e32 v0, v0, v1717; GFX8-NEXT: s_setpc_b64 s[30:31]718;719; GFX9-LABEL: v_minimumnum_f32_rhs_not_snan:720; GFX9: ; %bb.0:721; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)722; GFX9-NEXT: v_max_f32_e32 v1, v1, v1723; GFX9-NEXT: v_max_f32_e32 v0, v0, v0724; GFX9-NEXT: v_min_f32_e32 v0, v0, v1725; GFX9-NEXT: s_setpc_b64 s[30:31]726;727; GFX10-LABEL: v_minimumnum_f32_rhs_not_snan:728; GFX10: ; %bb.0:729; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)730; GFX10-NEXT: v_max_f32_e32 v1, v1, v1731; GFX10-NEXT: v_max_f32_e32 v0, v0, v0732; GFX10-NEXT: v_min_f32_e32 v0, v0, v1733; GFX10-NEXT: s_setpc_b64 s[30:31]734;735; GFX11-LABEL: v_minimumnum_f32_rhs_not_snan:736; GFX11: ; %bb.0:737; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)738; GFX11-NEXT: v_dual_max_f32 v1, v1, v1 :: v_dual_max_f32 v0, v0, v0739; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_1)740; GFX11-NEXT: v_min_f32_e32 v0, v0, v1741; GFX11-NEXT: s_setpc_b64 s[30:31]742;743; GFX12-LABEL: v_minimumnum_f32_rhs_not_snan:744; GFX12: ; %bb.0:745; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0746; GFX12-NEXT: s_wait_expcnt 0x0747; GFX12-NEXT: s_wait_samplecnt 0x0748; GFX12-NEXT: s_wait_bvhcnt 0x0749; GFX12-NEXT: s_wait_kmcnt 0x0750; GFX12-NEXT: v_dual_max_num_f32 v1, v1, v1 :: v_dual_max_num_f32 v0, v0, v0751; GFX12-NEXT: s_delay_alu instid0(VALU_DEP_1)752; GFX12-NEXT: v_min_num_f32_e32 v0, v0, v1753; GFX12-NEXT: s_setpc_b64 s[30:31]754 %canon.y = call float @llvm.canonicalize.f32(float %y)755 %result = call float @llvm.minimumnum.f32(float %x, float %canon.y)756 ret float %result757}758 759define float @v_minimumnum_f32_lhs_not_snan(float %x, float %y) {760; GFX7-LABEL: v_minimumnum_f32_lhs_not_snan:761; GFX7: ; %bb.0:762; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)763; GFX7-NEXT: v_mul_f32_e32 v0, 1.0, v0764; GFX7-NEXT: v_mul_f32_e32 v1, 1.0, v1765; GFX7-NEXT: v_min_f32_e32 v0, v0, v1766; GFX7-NEXT: s_setpc_b64 s[30:31]767;768; GFX8-LABEL: v_minimumnum_f32_lhs_not_snan:769; GFX8: ; %bb.0:770; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)771; GFX8-NEXT: v_mul_f32_e32 v0, 1.0, v0772; GFX8-NEXT: v_mul_f32_e32 v1, 1.0, v1773; GFX8-NEXT: v_min_f32_e32 v0, v0, v1774; GFX8-NEXT: s_setpc_b64 s[30:31]775;776; GFX9-LABEL: v_minimumnum_f32_lhs_not_snan:777; GFX9: ; %bb.0:778; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)779; GFX9-NEXT: v_max_f32_e32 v0, v0, v0780; GFX9-NEXT: v_max_f32_e32 v1, v1, v1781; GFX9-NEXT: v_min_f32_e32 v0, v0, v1782; GFX9-NEXT: s_setpc_b64 s[30:31]783;784; GFX10-LABEL: v_minimumnum_f32_lhs_not_snan:785; GFX10: ; %bb.0:786; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)787; GFX10-NEXT: v_max_f32_e32 v0, v0, v0788; GFX10-NEXT: v_max_f32_e32 v1, v1, v1789; GFX10-NEXT: v_min_f32_e32 v0, v0, v1790; GFX10-NEXT: s_setpc_b64 s[30:31]791;792; GFX11-LABEL: v_minimumnum_f32_lhs_not_snan:793; GFX11: ; %bb.0:794; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)795; GFX11-NEXT: v_dual_max_f32 v0, v0, v0 :: v_dual_max_f32 v1, v1, v1796; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_1)797; GFX11-NEXT: v_min_f32_e32 v0, v0, v1798; GFX11-NEXT: s_setpc_b64 s[30:31]799;800; GFX12-LABEL: v_minimumnum_f32_lhs_not_snan:801; GFX12: ; %bb.0:802; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0803; GFX12-NEXT: s_wait_expcnt 0x0804; GFX12-NEXT: s_wait_samplecnt 0x0805; GFX12-NEXT: s_wait_bvhcnt 0x0806; GFX12-NEXT: s_wait_kmcnt 0x0807; GFX12-NEXT: v_dual_max_num_f32 v0, v0, v0 :: v_dual_max_num_f32 v1, v1, v1808; GFX12-NEXT: s_delay_alu instid0(VALU_DEP_1)809; GFX12-NEXT: v_min_num_f32_e32 v0, v0, v1810; GFX12-NEXT: s_setpc_b64 s[30:31]811 %canon.x = call float @llvm.canonicalize.f32(float %x)812 %result = call float @llvm.minimumnum.f32(float %canon.x, float %y)813 ret float %result814}815 816define float @v_minimumnum_f32_both_operands_not_snan(float %x, float %y) {817; GFX7-LABEL: v_minimumnum_f32_both_operands_not_snan:818; GFX7: ; %bb.0:819; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)820; GFX7-NEXT: v_mul_f32_e32 v0, 1.0, v0821; GFX7-NEXT: v_mul_f32_e32 v1, 1.0, v1822; GFX7-NEXT: v_min_f32_e32 v0, v0, v1823; GFX7-NEXT: s_setpc_b64 s[30:31]824;825; GFX8-LABEL: v_minimumnum_f32_both_operands_not_snan:826; GFX8: ; %bb.0:827; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)828; GFX8-NEXT: v_mul_f32_e32 v0, 1.0, v0829; GFX8-NEXT: v_mul_f32_e32 v1, 1.0, v1830; GFX8-NEXT: v_min_f32_e32 v0, v0, v1831; GFX8-NEXT: s_setpc_b64 s[30:31]832;833; GFX9-LABEL: v_minimumnum_f32_both_operands_not_snan:834; GFX9: ; %bb.0:835; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)836; GFX9-NEXT: v_max_f32_e32 v0, v0, v0837; GFX9-NEXT: v_max_f32_e32 v1, v1, v1838; GFX9-NEXT: v_min_f32_e32 v0, v0, v1839; GFX9-NEXT: s_setpc_b64 s[30:31]840;841; GFX10-LABEL: v_minimumnum_f32_both_operands_not_snan:842; GFX10: ; %bb.0:843; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)844; GFX10-NEXT: v_max_f32_e32 v0, v0, v0845; GFX10-NEXT: v_max_f32_e32 v1, v1, v1846; GFX10-NEXT: v_min_f32_e32 v0, v0, v1847; GFX10-NEXT: s_setpc_b64 s[30:31]848;849; GFX11-LABEL: v_minimumnum_f32_both_operands_not_snan:850; GFX11: ; %bb.0:851; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)852; GFX11-NEXT: v_dual_max_f32 v0, v0, v0 :: v_dual_max_f32 v1, v1, v1853; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_1)854; GFX11-NEXT: v_min_f32_e32 v0, v0, v1855; GFX11-NEXT: s_setpc_b64 s[30:31]856;857; GFX12-LABEL: v_minimumnum_f32_both_operands_not_snan:858; GFX12: ; %bb.0:859; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0860; GFX12-NEXT: s_wait_expcnt 0x0861; GFX12-NEXT: s_wait_samplecnt 0x0862; GFX12-NEXT: s_wait_bvhcnt 0x0863; GFX12-NEXT: s_wait_kmcnt 0x0864; GFX12-NEXT: v_dual_max_num_f32 v0, v0, v0 :: v_dual_max_num_f32 v1, v1, v1865; GFX12-NEXT: s_delay_alu instid0(VALU_DEP_1)866; GFX12-NEXT: v_min_num_f32_e32 v0, v0, v1867; GFX12-NEXT: s_setpc_b64 s[30:31]868 %canon.x = call float @llvm.canonicalize.f32(float %x)869 %canon.y = call float @llvm.canonicalize.f32(float %y)870 %result = call float @llvm.minimumnum.f32(float %canon.x, float %canon.y)871 ret float %result872}873 874define double @v_minimumnum_f64_1.0(double %x) {875; GFX7-LABEL: v_minimumnum_f64_1.0:876; GFX7: ; %bb.0:877; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)878; GFX7-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]879; GFX7-NEXT: v_min_f64 v[0:1], v[0:1], 1.0880; GFX7-NEXT: s_setpc_b64 s[30:31]881;882; GFX8-LABEL: v_minimumnum_f64_1.0:883; GFX8: ; %bb.0:884; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)885; GFX8-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]886; GFX8-NEXT: v_min_f64 v[0:1], v[0:1], 1.0887; GFX8-NEXT: s_setpc_b64 s[30:31]888;889; GFX9-LABEL: v_minimumnum_f64_1.0:890; GFX9: ; %bb.0:891; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)892; GFX9-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]893; GFX9-NEXT: v_min_f64 v[0:1], v[0:1], 1.0894; GFX9-NEXT: s_setpc_b64 s[30:31]895;896; GFX10-LABEL: v_minimumnum_f64_1.0:897; GFX10: ; %bb.0:898; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)899; GFX10-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]900; GFX10-NEXT: v_min_f64 v[0:1], v[0:1], 1.0901; GFX10-NEXT: s_setpc_b64 s[30:31]902;903; GFX11-LABEL: v_minimumnum_f64_1.0:904; GFX11: ; %bb.0:905; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)906; GFX11-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]907; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_1)908; GFX11-NEXT: v_min_f64 v[0:1], v[0:1], 1.0909; GFX11-NEXT: s_setpc_b64 s[30:31]910;911; GFX12-LABEL: v_minimumnum_f64_1.0:912; GFX12: ; %bb.0:913; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0914; GFX12-NEXT: s_wait_expcnt 0x0915; GFX12-NEXT: s_wait_samplecnt 0x0916; GFX12-NEXT: s_wait_bvhcnt 0x0917; GFX12-NEXT: s_wait_kmcnt 0x0918; GFX12-NEXT: v_max_num_f64_e32 v[0:1], v[0:1], v[0:1]919; GFX12-NEXT: s_delay_alu instid0(VALU_DEP_1)920; GFX12-NEXT: v_min_num_f64_e32 v[0:1], 1.0, v[0:1]921; GFX12-NEXT: s_setpc_b64 s[30:31]922 %result = call double @llvm.minimumnum.f64(double %x, double 1.0)923 ret double %result924}925 926define half @v_minimumnum_f16_v_s(half %x, half inreg %y) {927; GFX7-SDAG-LABEL: v_minimumnum_f16_v_s:928; GFX7-SDAG: ; %bb.0:929; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)930; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v0931; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v1, s16932; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v0933; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v1, v1934; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v1935; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]936;937; GFX7-GISEL-LABEL: v_minimumnum_f16_v_s:938; GFX7-GISEL: ; %bb.0:939; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)940; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v0, v0941; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v1, s16942; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v1943; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v0, v0944; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]945;946; GFX8-SDAG-LABEL: v_minimumnum_f16_v_s:947; GFX8-SDAG: ; %bb.0:948; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)949; GFX8-SDAG-NEXT: v_max_f16_e64 v1, s16, s16950; GFX8-SDAG-NEXT: v_max_f16_e32 v0, v0, v0951; GFX8-SDAG-NEXT: v_min_f16_e32 v0, v0, v1952; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]953;954; GFX8-GISEL-LABEL: v_minimumnum_f16_v_s:955; GFX8-GISEL: ; %bb.0:956; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)957; GFX8-GISEL-NEXT: v_max_f16_e32 v0, v0, v0958; GFX8-GISEL-NEXT: v_max_f16_e64 v1, s16, s16959; GFX8-GISEL-NEXT: v_min_f16_e32 v0, v0, v1960; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]961;962; GFX900-SDAG-LABEL: v_minimumnum_f16_v_s:963; GFX900-SDAG: ; %bb.0:964; GFX900-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)965; GFX900-SDAG-NEXT: v_max_f16_e64 v1, s16, s16966; GFX900-SDAG-NEXT: v_max_f16_e32 v0, v0, v0967; GFX900-SDAG-NEXT: v_min_f16_e32 v0, v0, v1968; GFX900-SDAG-NEXT: s_setpc_b64 s[30:31]969;970; GFX900-GISEL-LABEL: v_minimumnum_f16_v_s:971; GFX900-GISEL: ; %bb.0:972; GFX900-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)973; GFX900-GISEL-NEXT: v_max_f16_e32 v0, v0, v0974; GFX900-GISEL-NEXT: v_max_f16_e64 v1, s16, s16975; GFX900-GISEL-NEXT: v_min_f16_e32 v0, v0, v1976; GFX900-GISEL-NEXT: s_setpc_b64 s[30:31]977;978; GFX950-SDAG-LABEL: v_minimumnum_f16_v_s:979; GFX950-SDAG: ; %bb.0:980; GFX950-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)981; GFX950-SDAG-NEXT: v_max_f16_e64 v1, s0, s0982; GFX950-SDAG-NEXT: v_max_f16_e32 v0, v0, v0983; GFX950-SDAG-NEXT: v_min_f16_e32 v0, v0, v1984; GFX950-SDAG-NEXT: s_setpc_b64 s[30:31]985;986; GFX950-GISEL-LABEL: v_minimumnum_f16_v_s:987; GFX950-GISEL: ; %bb.0:988; GFX950-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)989; GFX950-GISEL-NEXT: v_max_f16_e32 v0, v0, v0990; GFX950-GISEL-NEXT: v_max_f16_e64 v1, s0, s0991; GFX950-GISEL-NEXT: v_min_f16_e32 v0, v0, v1992; GFX950-GISEL-NEXT: s_setpc_b64 s[30:31]993;994; GFX10-SDAG-LABEL: v_minimumnum_f16_v_s:995; GFX10-SDAG: ; %bb.0:996; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)997; GFX10-SDAG-NEXT: v_max_f16_e64 v1, s16, s16998; GFX10-SDAG-NEXT: v_max_f16_e32 v0, v0, v0999; GFX10-SDAG-NEXT: v_min_f16_e32 v0, v0, v11000; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]1001;1002; GFX10-GISEL-LABEL: v_minimumnum_f16_v_s:1003; GFX10-GISEL: ; %bb.0:1004; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1005; GFX10-GISEL-NEXT: v_max_f16_e32 v0, v0, v01006; GFX10-GISEL-NEXT: v_max_f16_e64 v1, s16, s161007; GFX10-GISEL-NEXT: v_min_f16_e32 v0, v0, v11008; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]1009;1010; GFX11-TRUE16-SDAG-LABEL: v_minimumnum_f16_v_s:1011; GFX11-TRUE16-SDAG: ; %bb.0:1012; GFX11-TRUE16-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1013; GFX11-TRUE16-SDAG-NEXT: v_max_f16_e64 v0.h, s0, s01014; GFX11-TRUE16-SDAG-NEXT: v_max_f16_e32 v0.l, v0.l, v0.l1015; GFX11-TRUE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)1016; GFX11-TRUE16-SDAG-NEXT: v_min_f16_e32 v0.l, v0.l, v0.h1017; GFX11-TRUE16-SDAG-NEXT: s_setpc_b64 s[30:31]1018;1019; GFX11-TRUE16-GISEL-LABEL: v_minimumnum_f16_v_s:1020; GFX11-TRUE16-GISEL: ; %bb.0:1021; GFX11-TRUE16-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1022; GFX11-TRUE16-GISEL-NEXT: v_max_f16_e32 v0.l, v0.l, v0.l1023; GFX11-TRUE16-GISEL-NEXT: v_max_f16_e64 v0.h, s0, s01024; GFX11-TRUE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)1025; GFX11-TRUE16-GISEL-NEXT: v_min_f16_e32 v0.l, v0.l, v0.h1026; GFX11-TRUE16-GISEL-NEXT: s_setpc_b64 s[30:31]1027;1028; GFX11-FAKE16-SDAG-LABEL: v_minimumnum_f16_v_s:1029; GFX11-FAKE16-SDAG: ; %bb.0:1030; GFX11-FAKE16-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1031; GFX11-FAKE16-SDAG-NEXT: v_max_f16_e64 v1, s0, s01032; GFX11-FAKE16-SDAG-NEXT: v_max_f16_e32 v0, v0, v01033; GFX11-FAKE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)1034; GFX11-FAKE16-SDAG-NEXT: v_min_f16_e32 v0, v0, v11035; GFX11-FAKE16-SDAG-NEXT: s_setpc_b64 s[30:31]1036;1037; GFX11-FAKE16-GISEL-LABEL: v_minimumnum_f16_v_s:1038; GFX11-FAKE16-GISEL: ; %bb.0:1039; GFX11-FAKE16-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1040; GFX11-FAKE16-GISEL-NEXT: v_max_f16_e32 v0, v0, v01041; GFX11-FAKE16-GISEL-NEXT: v_max_f16_e64 v1, s0, s01042; GFX11-FAKE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)1043; GFX11-FAKE16-GISEL-NEXT: v_min_f16_e32 v0, v0, v11044; GFX11-FAKE16-GISEL-NEXT: s_setpc_b64 s[30:31]1045;1046; GFX12-TRUE16-SDAG-LABEL: v_minimumnum_f16_v_s:1047; GFX12-TRUE16-SDAG: ; %bb.0:1048; GFX12-TRUE16-SDAG-NEXT: s_wait_loadcnt_dscnt 0x01049; GFX12-TRUE16-SDAG-NEXT: s_wait_expcnt 0x01050; GFX12-TRUE16-SDAG-NEXT: s_wait_samplecnt 0x01051; GFX12-TRUE16-SDAG-NEXT: s_wait_bvhcnt 0x01052; GFX12-TRUE16-SDAG-NEXT: s_wait_kmcnt 0x01053; GFX12-TRUE16-SDAG-NEXT: v_max_num_f16_e64 v0.h, s0, s01054; GFX12-TRUE16-SDAG-NEXT: v_max_num_f16_e32 v0.l, v0.l, v0.l1055; GFX12-TRUE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)1056; GFX12-TRUE16-SDAG-NEXT: v_min_num_f16_e32 v0.l, v0.l, v0.h1057; GFX12-TRUE16-SDAG-NEXT: s_setpc_b64 s[30:31]1058;1059; GFX12-TRUE16-GISEL-LABEL: v_minimumnum_f16_v_s:1060; GFX12-TRUE16-GISEL: ; %bb.0:1061; GFX12-TRUE16-GISEL-NEXT: s_wait_loadcnt_dscnt 0x01062; GFX12-TRUE16-GISEL-NEXT: s_wait_expcnt 0x01063; GFX12-TRUE16-GISEL-NEXT: s_wait_samplecnt 0x01064; GFX12-TRUE16-GISEL-NEXT: s_wait_bvhcnt 0x01065; GFX12-TRUE16-GISEL-NEXT: s_wait_kmcnt 0x01066; GFX12-TRUE16-GISEL-NEXT: v_max_num_f16_e32 v0.l, v0.l, v0.l1067; GFX12-TRUE16-GISEL-NEXT: v_max_num_f16_e64 v0.h, s0, s01068; GFX12-TRUE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)1069; GFX12-TRUE16-GISEL-NEXT: v_min_num_f16_e32 v0.l, v0.l, v0.h1070; GFX12-TRUE16-GISEL-NEXT: s_setpc_b64 s[30:31]1071;1072; GFX12-FAKE16-SDAG-LABEL: v_minimumnum_f16_v_s:1073; GFX12-FAKE16-SDAG: ; %bb.0:1074; GFX12-FAKE16-SDAG-NEXT: s_wait_loadcnt_dscnt 0x01075; GFX12-FAKE16-SDAG-NEXT: s_wait_expcnt 0x01076; GFX12-FAKE16-SDAG-NEXT: s_wait_samplecnt 0x01077; GFX12-FAKE16-SDAG-NEXT: s_wait_bvhcnt 0x01078; GFX12-FAKE16-SDAG-NEXT: s_wait_kmcnt 0x01079; GFX12-FAKE16-SDAG-NEXT: v_max_num_f16_e64 v1, s0, s01080; GFX12-FAKE16-SDAG-NEXT: v_max_num_f16_e32 v0, v0, v01081; GFX12-FAKE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)1082; GFX12-FAKE16-SDAG-NEXT: v_min_num_f16_e32 v0, v0, v11083; GFX12-FAKE16-SDAG-NEXT: s_setpc_b64 s[30:31]1084;1085; GFX12-FAKE16-GISEL-LABEL: v_minimumnum_f16_v_s:1086; GFX12-FAKE16-GISEL: ; %bb.0:1087; GFX12-FAKE16-GISEL-NEXT: s_wait_loadcnt_dscnt 0x01088; GFX12-FAKE16-GISEL-NEXT: s_wait_expcnt 0x01089; GFX12-FAKE16-GISEL-NEXT: s_wait_samplecnt 0x01090; GFX12-FAKE16-GISEL-NEXT: s_wait_bvhcnt 0x01091; GFX12-FAKE16-GISEL-NEXT: s_wait_kmcnt 0x01092; GFX12-FAKE16-GISEL-NEXT: v_max_num_f16_e32 v0, v0, v01093; GFX12-FAKE16-GISEL-NEXT: v_max_num_f16_e64 v1, s0, s01094; GFX12-FAKE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)1095; GFX12-FAKE16-GISEL-NEXT: v_min_num_f16_e32 v0, v0, v11096; GFX12-FAKE16-GISEL-NEXT: s_setpc_b64 s[30:31]1097 %result = call half @llvm.minimumnum.f16(half %x, half %y)1098 ret half %result1099}1100 1101define half @v_minimumnum_f16_s_s(half inreg %x, half inreg %y) {1102; GFX7-SDAG-LABEL: v_minimumnum_f16_s_s:1103; GFX7-SDAG: ; %bb.0:1104; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1105; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v0, s161106; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v1, s171107; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v01108; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v1, v11109; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v11110; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]1111;1112; GFX7-GISEL-LABEL: v_minimumnum_f16_s_s:1113; GFX7-GISEL: ; %bb.0:1114; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1115; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v0, s161116; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v1, s171117; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v11118; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v0, v01119; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]1120;1121; GFX8-SDAG-LABEL: v_minimumnum_f16_s_s:1122; GFX8-SDAG: ; %bb.0:1123; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1124; GFX8-SDAG-NEXT: v_max_f16_e64 v0, s17, s171125; GFX8-SDAG-NEXT: v_max_f16_e64 v1, s16, s161126; GFX8-SDAG-NEXT: v_min_f16_e32 v0, v1, v01127; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]1128;1129; GFX8-GISEL-LABEL: v_minimumnum_f16_s_s:1130; GFX8-GISEL: ; %bb.0:1131; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1132; GFX8-GISEL-NEXT: v_max_f16_e64 v0, s16, s161133; GFX8-GISEL-NEXT: v_max_f16_e64 v1, s17, s171134; GFX8-GISEL-NEXT: v_min_f16_e32 v0, v0, v11135; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]1136;1137; GFX900-SDAG-LABEL: v_minimumnum_f16_s_s:1138; GFX900-SDAG: ; %bb.0:1139; GFX900-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1140; GFX900-SDAG-NEXT: v_max_f16_e64 v0, s17, s171141; GFX900-SDAG-NEXT: v_max_f16_e64 v1, s16, s161142; GFX900-SDAG-NEXT: v_min_f16_e32 v0, v1, v01143; GFX900-SDAG-NEXT: s_setpc_b64 s[30:31]1144;1145; GFX900-GISEL-LABEL: v_minimumnum_f16_s_s:1146; GFX900-GISEL: ; %bb.0:1147; GFX900-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1148; GFX900-GISEL-NEXT: v_max_f16_e64 v0, s16, s161149; GFX900-GISEL-NEXT: v_max_f16_e64 v1, s17, s171150; GFX900-GISEL-NEXT: v_min_f16_e32 v0, v0, v11151; GFX900-GISEL-NEXT: s_setpc_b64 s[30:31]1152;1153; GFX950-SDAG-LABEL: v_minimumnum_f16_s_s:1154; GFX950-SDAG: ; %bb.0:1155; GFX950-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1156; GFX950-SDAG-NEXT: v_max_f16_e64 v0, s1, s11157; GFX950-SDAG-NEXT: v_max_f16_e64 v1, s0, s01158; GFX950-SDAG-NEXT: v_min_f16_e32 v0, v1, v01159; GFX950-SDAG-NEXT: s_setpc_b64 s[30:31]1160;1161; GFX950-GISEL-LABEL: v_minimumnum_f16_s_s:1162; GFX950-GISEL: ; %bb.0:1163; GFX950-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1164; GFX950-GISEL-NEXT: v_max_f16_e64 v0, s0, s01165; GFX950-GISEL-NEXT: v_max_f16_e64 v1, s1, s11166; GFX950-GISEL-NEXT: v_min_f16_e32 v0, v0, v11167; GFX950-GISEL-NEXT: s_setpc_b64 s[30:31]1168;1169; GFX10-SDAG-LABEL: v_minimumnum_f16_s_s:1170; GFX10-SDAG: ; %bb.0:1171; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1172; GFX10-SDAG-NEXT: v_max_f16_e64 v0, s17, s171173; GFX10-SDAG-NEXT: v_max_f16_e64 v1, s16, s161174; GFX10-SDAG-NEXT: v_min_f16_e32 v0, v1, v01175; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]1176;1177; GFX10-GISEL-LABEL: v_minimumnum_f16_s_s:1178; GFX10-GISEL: ; %bb.0:1179; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1180; GFX10-GISEL-NEXT: v_max_f16_e64 v0, s16, s161181; GFX10-GISEL-NEXT: v_max_f16_e64 v1, s17, s171182; GFX10-GISEL-NEXT: v_min_f16_e32 v0, v0, v11183; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]1184;1185; GFX11-TRUE16-SDAG-LABEL: v_minimumnum_f16_s_s:1186; GFX11-TRUE16-SDAG: ; %bb.0:1187; GFX11-TRUE16-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1188; GFX11-TRUE16-SDAG-NEXT: v_max_f16_e64 v0.l, s1, s11189; GFX11-TRUE16-SDAG-NEXT: v_max_f16_e64 v0.h, s0, s01190; GFX11-TRUE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)1191; GFX11-TRUE16-SDAG-NEXT: v_min_f16_e32 v0.l, v0.h, v0.l1192; GFX11-TRUE16-SDAG-NEXT: s_setpc_b64 s[30:31]1193;1194; GFX11-TRUE16-GISEL-LABEL: v_minimumnum_f16_s_s:1195; GFX11-TRUE16-GISEL: ; %bb.0:1196; GFX11-TRUE16-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1197; GFX11-TRUE16-GISEL-NEXT: v_max_f16_e64 v0.l, s0, s01198; GFX11-TRUE16-GISEL-NEXT: v_max_f16_e64 v0.h, s1, s11199; GFX11-TRUE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)1200; GFX11-TRUE16-GISEL-NEXT: v_min_f16_e32 v0.l, v0.l, v0.h1201; GFX11-TRUE16-GISEL-NEXT: s_setpc_b64 s[30:31]1202;1203; GFX11-FAKE16-SDAG-LABEL: v_minimumnum_f16_s_s:1204; GFX11-FAKE16-SDAG: ; %bb.0:1205; GFX11-FAKE16-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1206; GFX11-FAKE16-SDAG-NEXT: v_max_f16_e64 v0, s1, s11207; GFX11-FAKE16-SDAG-NEXT: v_max_f16_e64 v1, s0, s01208; GFX11-FAKE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)1209; GFX11-FAKE16-SDAG-NEXT: v_min_f16_e32 v0, v1, v01210; GFX11-FAKE16-SDAG-NEXT: s_setpc_b64 s[30:31]1211;1212; GFX11-FAKE16-GISEL-LABEL: v_minimumnum_f16_s_s:1213; GFX11-FAKE16-GISEL: ; %bb.0:1214; GFX11-FAKE16-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1215; GFX11-FAKE16-GISEL-NEXT: v_max_f16_e64 v0, s0, s01216; GFX11-FAKE16-GISEL-NEXT: v_max_f16_e64 v1, s1, s11217; GFX11-FAKE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)1218; GFX11-FAKE16-GISEL-NEXT: v_min_f16_e32 v0, v0, v11219; GFX11-FAKE16-GISEL-NEXT: s_setpc_b64 s[30:31]1220;1221; GFX12-TRUE16-SDAG-LABEL: v_minimumnum_f16_s_s:1222; GFX12-TRUE16-SDAG: ; %bb.0:1223; GFX12-TRUE16-SDAG-NEXT: s_wait_loadcnt_dscnt 0x01224; GFX12-TRUE16-SDAG-NEXT: s_wait_expcnt 0x01225; GFX12-TRUE16-SDAG-NEXT: s_wait_samplecnt 0x01226; GFX12-TRUE16-SDAG-NEXT: s_wait_bvhcnt 0x01227; GFX12-TRUE16-SDAG-NEXT: s_wait_kmcnt 0x01228; GFX12-TRUE16-SDAG-NEXT: v_max_num_f16_e64 v0.l, s1, s11229; GFX12-TRUE16-SDAG-NEXT: v_max_num_f16_e64 v0.h, s0, s01230; GFX12-TRUE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)1231; GFX12-TRUE16-SDAG-NEXT: v_min_num_f16_e32 v0.l, v0.h, v0.l1232; GFX12-TRUE16-SDAG-NEXT: s_setpc_b64 s[30:31]1233;1234; GFX12-TRUE16-GISEL-LABEL: v_minimumnum_f16_s_s:1235; GFX12-TRUE16-GISEL: ; %bb.0:1236; GFX12-TRUE16-GISEL-NEXT: s_wait_loadcnt_dscnt 0x01237; GFX12-TRUE16-GISEL-NEXT: s_wait_expcnt 0x01238; GFX12-TRUE16-GISEL-NEXT: s_wait_samplecnt 0x01239; GFX12-TRUE16-GISEL-NEXT: s_wait_bvhcnt 0x01240; GFX12-TRUE16-GISEL-NEXT: s_wait_kmcnt 0x01241; GFX12-TRUE16-GISEL-NEXT: v_max_num_f16_e64 v0.l, s0, s01242; GFX12-TRUE16-GISEL-NEXT: v_max_num_f16_e64 v0.h, s1, s11243; GFX12-TRUE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)1244; GFX12-TRUE16-GISEL-NEXT: v_min_num_f16_e32 v0.l, v0.l, v0.h1245; GFX12-TRUE16-GISEL-NEXT: s_setpc_b64 s[30:31]1246;1247; GFX12-FAKE16-SDAG-LABEL: v_minimumnum_f16_s_s:1248; GFX12-FAKE16-SDAG: ; %bb.0:1249; GFX12-FAKE16-SDAG-NEXT: s_wait_loadcnt_dscnt 0x01250; GFX12-FAKE16-SDAG-NEXT: s_wait_expcnt 0x01251; GFX12-FAKE16-SDAG-NEXT: s_wait_samplecnt 0x01252; GFX12-FAKE16-SDAG-NEXT: s_wait_bvhcnt 0x01253; GFX12-FAKE16-SDAG-NEXT: s_wait_kmcnt 0x01254; GFX12-FAKE16-SDAG-NEXT: v_max_num_f16_e64 v0, s1, s11255; GFX12-FAKE16-SDAG-NEXT: v_max_num_f16_e64 v1, s0, s01256; GFX12-FAKE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)1257; GFX12-FAKE16-SDAG-NEXT: v_min_num_f16_e32 v0, v1, v01258; GFX12-FAKE16-SDAG-NEXT: s_setpc_b64 s[30:31]1259;1260; GFX12-FAKE16-GISEL-LABEL: v_minimumnum_f16_s_s:1261; GFX12-FAKE16-GISEL: ; %bb.0:1262; GFX12-FAKE16-GISEL-NEXT: s_wait_loadcnt_dscnt 0x01263; GFX12-FAKE16-GISEL-NEXT: s_wait_expcnt 0x01264; GFX12-FAKE16-GISEL-NEXT: s_wait_samplecnt 0x01265; GFX12-FAKE16-GISEL-NEXT: s_wait_bvhcnt 0x01266; GFX12-FAKE16-GISEL-NEXT: s_wait_kmcnt 0x01267; GFX12-FAKE16-GISEL-NEXT: v_max_num_f16_e64 v0, s0, s01268; GFX12-FAKE16-GISEL-NEXT: v_max_num_f16_e64 v1, s1, s11269; GFX12-FAKE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)1270; GFX12-FAKE16-GISEL-NEXT: v_min_num_f16_e32 v0, v0, v11271; GFX12-FAKE16-GISEL-NEXT: s_setpc_b64 s[30:31]1272 %result = call half @llvm.minimumnum.f16(half %x, half %y)1273 ret half %result1274}1275 1276define float @v_minimumnum_f32_s_v(float inreg %x, float %y) {1277; GFX7-SDAG-LABEL: v_minimumnum_f32_s_v:1278; GFX7-SDAG: ; %bb.0:1279; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1280; GFX7-SDAG-NEXT: v_mul_f32_e32 v0, 1.0, v01281; GFX7-SDAG-NEXT: v_mul_f32_e64 v1, 1.0, s161282; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v1, v01283; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]1284;1285; GFX7-GISEL-LABEL: v_minimumnum_f32_s_v:1286; GFX7-GISEL: ; %bb.0:1287; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1288; GFX7-GISEL-NEXT: v_mul_f32_e64 v1, 1.0, s161289; GFX7-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v01290; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v1, v01291; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]1292;1293; GFX8-SDAG-LABEL: v_minimumnum_f32_s_v:1294; GFX8-SDAG: ; %bb.0:1295; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1296; GFX8-SDAG-NEXT: v_mul_f32_e32 v0, 1.0, v01297; GFX8-SDAG-NEXT: v_mul_f32_e64 v1, 1.0, s161298; GFX8-SDAG-NEXT: v_min_f32_e32 v0, v1, v01299; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]1300;1301; GFX8-GISEL-LABEL: v_minimumnum_f32_s_v:1302; GFX8-GISEL: ; %bb.0:1303; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1304; GFX8-GISEL-NEXT: v_mul_f32_e64 v1, 1.0, s161305; GFX8-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v01306; GFX8-GISEL-NEXT: v_min_f32_e32 v0, v1, v01307; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]1308;1309; GFX900-SDAG-LABEL: v_minimumnum_f32_s_v:1310; GFX900-SDAG: ; %bb.0:1311; GFX900-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1312; GFX900-SDAG-NEXT: v_max_f32_e32 v0, v0, v01313; GFX900-SDAG-NEXT: v_max_f32_e64 v1, s16, s161314; GFX900-SDAG-NEXT: v_min_f32_e32 v0, v1, v01315; GFX900-SDAG-NEXT: s_setpc_b64 s[30:31]1316;1317; GFX900-GISEL-LABEL: v_minimumnum_f32_s_v:1318; GFX900-GISEL: ; %bb.0:1319; GFX900-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1320; GFX900-GISEL-NEXT: v_max_f32_e64 v1, s16, s161321; GFX900-GISEL-NEXT: v_max_f32_e32 v0, v0, v01322; GFX900-GISEL-NEXT: v_min_f32_e32 v0, v1, v01323; GFX900-GISEL-NEXT: s_setpc_b64 s[30:31]1324;1325; GFX950-SDAG-LABEL: v_minimumnum_f32_s_v:1326; GFX950-SDAG: ; %bb.0:1327; GFX950-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1328; GFX950-SDAG-NEXT: v_max_f32_e32 v0, v0, v01329; GFX950-SDAG-NEXT: v_max_f32_e64 v1, s0, s01330; GFX950-SDAG-NEXT: v_min_f32_e32 v0, v1, v01331; GFX950-SDAG-NEXT: s_setpc_b64 s[30:31]1332;1333; GFX950-GISEL-LABEL: v_minimumnum_f32_s_v:1334; GFX950-GISEL: ; %bb.0:1335; GFX950-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1336; GFX950-GISEL-NEXT: v_max_f32_e64 v1, s0, s01337; GFX950-GISEL-NEXT: v_max_f32_e32 v0, v0, v01338; GFX950-GISEL-NEXT: v_min_f32_e32 v0, v1, v01339; GFX950-GISEL-NEXT: s_setpc_b64 s[30:31]1340;1341; GFX10-SDAG-LABEL: v_minimumnum_f32_s_v:1342; GFX10-SDAG: ; %bb.0:1343; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1344; GFX10-SDAG-NEXT: v_max_f32_e32 v0, v0, v01345; GFX10-SDAG-NEXT: v_max_f32_e64 v1, s16, s161346; GFX10-SDAG-NEXT: v_min_f32_e32 v0, v1, v01347; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]1348;1349; GFX10-GISEL-LABEL: v_minimumnum_f32_s_v:1350; GFX10-GISEL: ; %bb.0:1351; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1352; GFX10-GISEL-NEXT: v_max_f32_e64 v1, s16, s161353; GFX10-GISEL-NEXT: v_max_f32_e32 v0, v0, v01354; GFX10-GISEL-NEXT: v_min_f32_e32 v0, v1, v01355; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]1356;1357; GFX11-SDAG-LABEL: v_minimumnum_f32_s_v:1358; GFX11-SDAG: ; %bb.0:1359; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1360; GFX11-SDAG-NEXT: v_max_f32_e32 v0, v0, v01361; GFX11-SDAG-NEXT: v_max_f32_e64 v1, s0, s01362; GFX11-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)1363; GFX11-SDAG-NEXT: v_min_f32_e32 v0, v1, v01364; GFX11-SDAG-NEXT: s_setpc_b64 s[30:31]1365;1366; GFX11-GISEL-LABEL: v_minimumnum_f32_s_v:1367; GFX11-GISEL: ; %bb.0:1368; GFX11-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1369; GFX11-GISEL-NEXT: v_max_f32_e64 v1, s0, s01370; GFX11-GISEL-NEXT: v_max_f32_e32 v0, v0, v01371; GFX11-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)1372; GFX11-GISEL-NEXT: v_min_f32_e32 v0, v1, v01373; GFX11-GISEL-NEXT: s_setpc_b64 s[30:31]1374;1375; GFX12-SDAG-LABEL: v_minimumnum_f32_s_v:1376; GFX12-SDAG: ; %bb.0:1377; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x01378; GFX12-SDAG-NEXT: s_wait_expcnt 0x01379; GFX12-SDAG-NEXT: s_wait_samplecnt 0x01380; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x01381; GFX12-SDAG-NEXT: s_wait_kmcnt 0x01382; GFX12-SDAG-NEXT: v_max_num_f32_e32 v0, v0, v01383; GFX12-SDAG-NEXT: v_max_num_f32_e64 v1, s0, s01384; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)1385; GFX12-SDAG-NEXT: v_min_num_f32_e32 v0, v1, v01386; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]1387;1388; GFX12-GISEL-LABEL: v_minimumnum_f32_s_v:1389; GFX12-GISEL: ; %bb.0:1390; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x01391; GFX12-GISEL-NEXT: s_wait_expcnt 0x01392; GFX12-GISEL-NEXT: s_wait_samplecnt 0x01393; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x01394; GFX12-GISEL-NEXT: s_wait_kmcnt 0x01395; GFX12-GISEL-NEXT: v_max_num_f32_e64 v1, s0, s01396; GFX12-GISEL-NEXT: v_max_num_f32_e32 v0, v0, v01397; GFX12-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)1398; GFX12-GISEL-NEXT: v_min_num_f32_e32 v0, v1, v01399; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]1400 %result = call float @llvm.minimumnum.f32(float %x, float %y)1401 ret float %result1402}1403 1404define float @v_minimumnum_f32_v_s(float %x, float inreg %y) {1405; GFX7-SDAG-LABEL: v_minimumnum_f32_v_s:1406; GFX7-SDAG: ; %bb.0:1407; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1408; GFX7-SDAG-NEXT: v_mul_f32_e64 v1, 1.0, s161409; GFX7-SDAG-NEXT: v_mul_f32_e32 v0, 1.0, v01410; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v11411; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]1412;1413; GFX7-GISEL-LABEL: v_minimumnum_f32_v_s:1414; GFX7-GISEL: ; %bb.0:1415; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1416; GFX7-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v01417; GFX7-GISEL-NEXT: v_mul_f32_e64 v1, 1.0, s161418; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v11419; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]1420;1421; GFX8-SDAG-LABEL: v_minimumnum_f32_v_s:1422; GFX8-SDAG: ; %bb.0:1423; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1424; GFX8-SDAG-NEXT: v_mul_f32_e64 v1, 1.0, s161425; GFX8-SDAG-NEXT: v_mul_f32_e32 v0, 1.0, v01426; GFX8-SDAG-NEXT: v_min_f32_e32 v0, v0, v11427; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]1428;1429; GFX8-GISEL-LABEL: v_minimumnum_f32_v_s:1430; GFX8-GISEL: ; %bb.0:1431; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1432; GFX8-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v01433; GFX8-GISEL-NEXT: v_mul_f32_e64 v1, 1.0, s161434; GFX8-GISEL-NEXT: v_min_f32_e32 v0, v0, v11435; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]1436;1437; GFX900-SDAG-LABEL: v_minimumnum_f32_v_s:1438; GFX900-SDAG: ; %bb.0:1439; GFX900-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1440; GFX900-SDAG-NEXT: v_max_f32_e64 v1, s16, s161441; GFX900-SDAG-NEXT: v_max_f32_e32 v0, v0, v01442; GFX900-SDAG-NEXT: v_min_f32_e32 v0, v0, v11443; GFX900-SDAG-NEXT: s_setpc_b64 s[30:31]1444;1445; GFX900-GISEL-LABEL: v_minimumnum_f32_v_s:1446; GFX900-GISEL: ; %bb.0:1447; GFX900-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1448; GFX900-GISEL-NEXT: v_max_f32_e32 v0, v0, v01449; GFX900-GISEL-NEXT: v_max_f32_e64 v1, s16, s161450; GFX900-GISEL-NEXT: v_min_f32_e32 v0, v0, v11451; GFX900-GISEL-NEXT: s_setpc_b64 s[30:31]1452;1453; GFX950-SDAG-LABEL: v_minimumnum_f32_v_s:1454; GFX950-SDAG: ; %bb.0:1455; GFX950-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1456; GFX950-SDAG-NEXT: v_max_f32_e64 v1, s0, s01457; GFX950-SDAG-NEXT: v_max_f32_e32 v0, v0, v01458; GFX950-SDAG-NEXT: v_min_f32_e32 v0, v0, v11459; GFX950-SDAG-NEXT: s_setpc_b64 s[30:31]1460;1461; GFX950-GISEL-LABEL: v_minimumnum_f32_v_s:1462; GFX950-GISEL: ; %bb.0:1463; GFX950-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1464; GFX950-GISEL-NEXT: v_max_f32_e32 v0, v0, v01465; GFX950-GISEL-NEXT: v_max_f32_e64 v1, s0, s01466; GFX950-GISEL-NEXT: v_min_f32_e32 v0, v0, v11467; GFX950-GISEL-NEXT: s_setpc_b64 s[30:31]1468;1469; GFX10-SDAG-LABEL: v_minimumnum_f32_v_s:1470; GFX10-SDAG: ; %bb.0:1471; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1472; GFX10-SDAG-NEXT: v_max_f32_e64 v1, s16, s161473; GFX10-SDAG-NEXT: v_max_f32_e32 v0, v0, v01474; GFX10-SDAG-NEXT: v_min_f32_e32 v0, v0, v11475; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]1476;1477; GFX10-GISEL-LABEL: v_minimumnum_f32_v_s:1478; GFX10-GISEL: ; %bb.0:1479; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1480; GFX10-GISEL-NEXT: v_max_f32_e32 v0, v0, v01481; GFX10-GISEL-NEXT: v_max_f32_e64 v1, s16, s161482; GFX10-GISEL-NEXT: v_min_f32_e32 v0, v0, v11483; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]1484;1485; GFX11-SDAG-LABEL: v_minimumnum_f32_v_s:1486; GFX11-SDAG: ; %bb.0:1487; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1488; GFX11-SDAG-NEXT: v_max_f32_e64 v1, s0, s01489; GFX11-SDAG-NEXT: v_max_f32_e32 v0, v0, v01490; GFX11-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)1491; GFX11-SDAG-NEXT: v_min_f32_e32 v0, v0, v11492; GFX11-SDAG-NEXT: s_setpc_b64 s[30:31]1493;1494; GFX11-GISEL-LABEL: v_minimumnum_f32_v_s:1495; GFX11-GISEL: ; %bb.0:1496; GFX11-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1497; GFX11-GISEL-NEXT: v_max_f32_e32 v0, v0, v01498; GFX11-GISEL-NEXT: v_max_f32_e64 v1, s0, s01499; GFX11-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)1500; GFX11-GISEL-NEXT: v_min_f32_e32 v0, v0, v11501; GFX11-GISEL-NEXT: s_setpc_b64 s[30:31]1502;1503; GFX12-SDAG-LABEL: v_minimumnum_f32_v_s:1504; GFX12-SDAG: ; %bb.0:1505; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x01506; GFX12-SDAG-NEXT: s_wait_expcnt 0x01507; GFX12-SDAG-NEXT: s_wait_samplecnt 0x01508; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x01509; GFX12-SDAG-NEXT: s_wait_kmcnt 0x01510; GFX12-SDAG-NEXT: v_max_num_f32_e64 v1, s0, s01511; GFX12-SDAG-NEXT: v_max_num_f32_e32 v0, v0, v01512; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)1513; GFX12-SDAG-NEXT: v_min_num_f32_e32 v0, v0, v11514; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]1515;1516; GFX12-GISEL-LABEL: v_minimumnum_f32_v_s:1517; GFX12-GISEL: ; %bb.0:1518; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x01519; GFX12-GISEL-NEXT: s_wait_expcnt 0x01520; GFX12-GISEL-NEXT: s_wait_samplecnt 0x01521; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x01522; GFX12-GISEL-NEXT: s_wait_kmcnt 0x01523; GFX12-GISEL-NEXT: v_max_num_f32_e32 v0, v0, v01524; GFX12-GISEL-NEXT: v_max_num_f32_e64 v1, s0, s01525; GFX12-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)1526; GFX12-GISEL-NEXT: v_min_num_f32_e32 v0, v0, v11527; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]1528 %result = call float @llvm.minimumnum.f32(float %x, float %y)1529 ret float %result1530}1531 1532define float @v_minimumnum_f32_s_s(float inreg %x, float inreg %y) {1533; GFX7-SDAG-LABEL: v_minimumnum_f32_s_s:1534; GFX7-SDAG: ; %bb.0:1535; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1536; GFX7-SDAG-NEXT: v_mul_f32_e64 v0, 1.0, s171537; GFX7-SDAG-NEXT: v_mul_f32_e64 v1, 1.0, s161538; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v1, v01539; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]1540;1541; GFX7-GISEL-LABEL: v_minimumnum_f32_s_s:1542; GFX7-GISEL: ; %bb.0:1543; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1544; GFX7-GISEL-NEXT: v_mul_f32_e64 v0, 1.0, s161545; GFX7-GISEL-NEXT: v_mul_f32_e64 v1, 1.0, s171546; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v11547; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]1548;1549; GFX8-SDAG-LABEL: v_minimumnum_f32_s_s:1550; GFX8-SDAG: ; %bb.0:1551; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1552; GFX8-SDAG-NEXT: v_mul_f32_e64 v0, 1.0, s171553; GFX8-SDAG-NEXT: v_mul_f32_e64 v1, 1.0, s161554; GFX8-SDAG-NEXT: v_min_f32_e32 v0, v1, v01555; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]1556;1557; GFX8-GISEL-LABEL: v_minimumnum_f32_s_s:1558; GFX8-GISEL: ; %bb.0:1559; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1560; GFX8-GISEL-NEXT: v_mul_f32_e64 v0, 1.0, s161561; GFX8-GISEL-NEXT: v_mul_f32_e64 v1, 1.0, s171562; GFX8-GISEL-NEXT: v_min_f32_e32 v0, v0, v11563; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]1564;1565; GFX900-SDAG-LABEL: v_minimumnum_f32_s_s:1566; GFX900-SDAG: ; %bb.0:1567; GFX900-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1568; GFX900-SDAG-NEXT: v_max_f32_e64 v0, s17, s171569; GFX900-SDAG-NEXT: v_max_f32_e64 v1, s16, s161570; GFX900-SDAG-NEXT: v_min_f32_e32 v0, v1, v01571; GFX900-SDAG-NEXT: s_setpc_b64 s[30:31]1572;1573; GFX900-GISEL-LABEL: v_minimumnum_f32_s_s:1574; GFX900-GISEL: ; %bb.0:1575; GFX900-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1576; GFX900-GISEL-NEXT: v_max_f32_e64 v0, s16, s161577; GFX900-GISEL-NEXT: v_max_f32_e64 v1, s17, s171578; GFX900-GISEL-NEXT: v_min_f32_e32 v0, v0, v11579; GFX900-GISEL-NEXT: s_setpc_b64 s[30:31]1580;1581; GFX950-SDAG-LABEL: v_minimumnum_f32_s_s:1582; GFX950-SDAG: ; %bb.0:1583; GFX950-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1584; GFX950-SDAG-NEXT: v_max_f32_e64 v0, s1, s11585; GFX950-SDAG-NEXT: v_max_f32_e64 v1, s0, s01586; GFX950-SDAG-NEXT: v_min_f32_e32 v0, v1, v01587; GFX950-SDAG-NEXT: s_setpc_b64 s[30:31]1588;1589; GFX950-GISEL-LABEL: v_minimumnum_f32_s_s:1590; GFX950-GISEL: ; %bb.0:1591; GFX950-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1592; GFX950-GISEL-NEXT: v_max_f32_e64 v0, s0, s01593; GFX950-GISEL-NEXT: v_max_f32_e64 v1, s1, s11594; GFX950-GISEL-NEXT: v_min_f32_e32 v0, v0, v11595; GFX950-GISEL-NEXT: s_setpc_b64 s[30:31]1596;1597; GFX10-SDAG-LABEL: v_minimumnum_f32_s_s:1598; GFX10-SDAG: ; %bb.0:1599; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1600; GFX10-SDAG-NEXT: v_max_f32_e64 v0, s17, s171601; GFX10-SDAG-NEXT: v_max_f32_e64 v1, s16, s161602; GFX10-SDAG-NEXT: v_min_f32_e32 v0, v1, v01603; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]1604;1605; GFX10-GISEL-LABEL: v_minimumnum_f32_s_s:1606; GFX10-GISEL: ; %bb.0:1607; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1608; GFX10-GISEL-NEXT: v_max_f32_e64 v0, s16, s161609; GFX10-GISEL-NEXT: v_max_f32_e64 v1, s17, s171610; GFX10-GISEL-NEXT: v_min_f32_e32 v0, v0, v11611; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]1612;1613; GFX11-SDAG-LABEL: v_minimumnum_f32_s_s:1614; GFX11-SDAG: ; %bb.0:1615; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1616; GFX11-SDAG-NEXT: v_max_f32_e64 v0, s1, s11617; GFX11-SDAG-NEXT: v_max_f32_e64 v1, s0, s01618; GFX11-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)1619; GFX11-SDAG-NEXT: v_min_f32_e32 v0, v1, v01620; GFX11-SDAG-NEXT: s_setpc_b64 s[30:31]1621;1622; GFX11-GISEL-LABEL: v_minimumnum_f32_s_s:1623; GFX11-GISEL: ; %bb.0:1624; GFX11-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1625; GFX11-GISEL-NEXT: v_max_f32_e64 v0, s0, s01626; GFX11-GISEL-NEXT: v_max_f32_e64 v1, s1, s11627; GFX11-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)1628; GFX11-GISEL-NEXT: v_min_f32_e32 v0, v0, v11629; GFX11-GISEL-NEXT: s_setpc_b64 s[30:31]1630;1631; GFX12-SDAG-LABEL: v_minimumnum_f32_s_s:1632; GFX12-SDAG: ; %bb.0:1633; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x01634; GFX12-SDAG-NEXT: s_wait_expcnt 0x01635; GFX12-SDAG-NEXT: s_wait_samplecnt 0x01636; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x01637; GFX12-SDAG-NEXT: s_wait_kmcnt 0x01638; GFX12-SDAG-NEXT: v_max_num_f32_e64 v0, s1, s11639; GFX12-SDAG-NEXT: v_max_num_f32_e64 v1, s0, s01640; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)1641; GFX12-SDAG-NEXT: v_min_num_f32_e32 v0, v1, v01642; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]1643;1644; GFX12-GISEL-LABEL: v_minimumnum_f32_s_s:1645; GFX12-GISEL: ; %bb.0:1646; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x01647; GFX12-GISEL-NEXT: s_wait_expcnt 0x01648; GFX12-GISEL-NEXT: s_wait_samplecnt 0x01649; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x01650; GFX12-GISEL-NEXT: s_wait_kmcnt 0x01651; GFX12-GISEL-NEXT: v_max_num_f32_e64 v0, s0, s01652; GFX12-GISEL-NEXT: v_max_num_f32_e64 v1, s1, s11653; GFX12-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)1654; GFX12-GISEL-NEXT: v_min_num_f32_e32 v0, v0, v11655; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]1656 %result = call float @llvm.minimumnum.f32(float %x, float %y)1657 ret float %result1658}1659 1660define double @v_minimumnum_f64_s_v(double inreg %x, double %y) {1661; GFX7-SDAG-LABEL: v_minimumnum_f64_s_v:1662; GFX7-SDAG: ; %bb.0:1663; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1664; GFX7-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]1665; GFX7-SDAG-NEXT: v_max_f64 v[2:3], s[16:17], s[16:17]1666; GFX7-SDAG-NEXT: v_min_f64 v[0:1], v[2:3], v[0:1]1667; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]1668;1669; GFX7-GISEL-LABEL: v_minimumnum_f64_s_v:1670; GFX7-GISEL: ; %bb.0:1671; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1672; GFX7-GISEL-NEXT: v_max_f64 v[2:3], s[16:17], s[16:17]1673; GFX7-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]1674; GFX7-GISEL-NEXT: v_min_f64 v[0:1], v[2:3], v[0:1]1675; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]1676;1677; GFX8-SDAG-LABEL: v_minimumnum_f64_s_v:1678; GFX8-SDAG: ; %bb.0:1679; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1680; GFX8-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]1681; GFX8-SDAG-NEXT: v_max_f64 v[2:3], s[16:17], s[16:17]1682; GFX8-SDAG-NEXT: v_min_f64 v[0:1], v[2:3], v[0:1]1683; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]1684;1685; GFX8-GISEL-LABEL: v_minimumnum_f64_s_v:1686; GFX8-GISEL: ; %bb.0:1687; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1688; GFX8-GISEL-NEXT: v_max_f64 v[2:3], s[16:17], s[16:17]1689; GFX8-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]1690; GFX8-GISEL-NEXT: v_min_f64 v[0:1], v[2:3], v[0:1]1691; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]1692;1693; GFX900-SDAG-LABEL: v_minimumnum_f64_s_v:1694; GFX900-SDAG: ; %bb.0:1695; GFX900-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1696; GFX900-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]1697; GFX900-SDAG-NEXT: v_max_f64 v[2:3], s[16:17], s[16:17]1698; GFX900-SDAG-NEXT: v_min_f64 v[0:1], v[2:3], v[0:1]1699; GFX900-SDAG-NEXT: s_setpc_b64 s[30:31]1700;1701; GFX900-GISEL-LABEL: v_minimumnum_f64_s_v:1702; GFX900-GISEL: ; %bb.0:1703; GFX900-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1704; GFX900-GISEL-NEXT: v_max_f64 v[2:3], s[16:17], s[16:17]1705; GFX900-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]1706; GFX900-GISEL-NEXT: v_min_f64 v[0:1], v[2:3], v[0:1]1707; GFX900-GISEL-NEXT: s_setpc_b64 s[30:31]1708;1709; GFX950-SDAG-LABEL: v_minimumnum_f64_s_v:1710; GFX950-SDAG: ; %bb.0:1711; GFX950-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1712; GFX950-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]1713; GFX950-SDAG-NEXT: v_max_f64 v[2:3], s[0:1], s[0:1]1714; GFX950-SDAG-NEXT: v_min_f64 v[0:1], v[2:3], v[0:1]1715; GFX950-SDAG-NEXT: s_setpc_b64 s[30:31]1716;1717; GFX950-GISEL-LABEL: v_minimumnum_f64_s_v:1718; GFX950-GISEL: ; %bb.0:1719; GFX950-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1720; GFX950-GISEL-NEXT: v_max_f64 v[2:3], s[0:1], s[0:1]1721; GFX950-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]1722; GFX950-GISEL-NEXT: v_min_f64 v[0:1], v[2:3], v[0:1]1723; GFX950-GISEL-NEXT: s_setpc_b64 s[30:31]1724;1725; GFX10-LABEL: v_minimumnum_f64_s_v:1726; GFX10: ; %bb.0:1727; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1728; GFX10-NEXT: v_max_f64 v[2:3], s[16:17], s[16:17]1729; GFX10-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]1730; GFX10-NEXT: v_min_f64 v[0:1], v[2:3], v[0:1]1731; GFX10-NEXT: s_setpc_b64 s[30:31]1732;1733; GFX11-LABEL: v_minimumnum_f64_s_v:1734; GFX11: ; %bb.0:1735; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1736; GFX11-NEXT: v_max_f64 v[2:3], s[0:1], s[0:1]1737; GFX11-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]1738; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_1)1739; GFX11-NEXT: v_min_f64 v[0:1], v[2:3], v[0:1]1740; GFX11-NEXT: s_setpc_b64 s[30:31]1741;1742; GFX12-LABEL: v_minimumnum_f64_s_v:1743; GFX12: ; %bb.0:1744; GFX12-NEXT: s_wait_loadcnt_dscnt 0x01745; GFX12-NEXT: s_wait_expcnt 0x01746; GFX12-NEXT: s_wait_samplecnt 0x01747; GFX12-NEXT: s_wait_bvhcnt 0x01748; GFX12-NEXT: s_wait_kmcnt 0x01749; GFX12-NEXT: v_max_num_f64_e64 v[2:3], s[0:1], s[0:1]1750; GFX12-NEXT: v_max_num_f64_e32 v[0:1], v[0:1], v[0:1]1751; GFX12-NEXT: s_delay_alu instid0(VALU_DEP_1)1752; GFX12-NEXT: v_min_num_f64_e32 v[0:1], v[2:3], v[0:1]1753; GFX12-NEXT: s_setpc_b64 s[30:31]1754 %result = call double @llvm.minimumnum.f64(double %x, double %y)1755 ret double %result1756}1757 1758define double @v_minimumnum_f64_v_s(double %x, double inreg %y) {1759; GFX7-SDAG-LABEL: v_minimumnum_f64_v_s:1760; GFX7-SDAG: ; %bb.0:1761; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1762; GFX7-SDAG-NEXT: v_max_f64 v[2:3], s[16:17], s[16:17]1763; GFX7-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]1764; GFX7-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]1765; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]1766;1767; GFX7-GISEL-LABEL: v_minimumnum_f64_v_s:1768; GFX7-GISEL: ; %bb.0:1769; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1770; GFX7-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]1771; GFX7-GISEL-NEXT: v_max_f64 v[2:3], s[16:17], s[16:17]1772; GFX7-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]1773; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]1774;1775; GFX8-SDAG-LABEL: v_minimumnum_f64_v_s:1776; GFX8-SDAG: ; %bb.0:1777; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1778; GFX8-SDAG-NEXT: v_max_f64 v[2:3], s[16:17], s[16:17]1779; GFX8-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]1780; GFX8-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]1781; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]1782;1783; GFX8-GISEL-LABEL: v_minimumnum_f64_v_s:1784; GFX8-GISEL: ; %bb.0:1785; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1786; GFX8-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]1787; GFX8-GISEL-NEXT: v_max_f64 v[2:3], s[16:17], s[16:17]1788; GFX8-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]1789; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]1790;1791; GFX900-SDAG-LABEL: v_minimumnum_f64_v_s:1792; GFX900-SDAG: ; %bb.0:1793; GFX900-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1794; GFX900-SDAG-NEXT: v_max_f64 v[2:3], s[16:17], s[16:17]1795; GFX900-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]1796; GFX900-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]1797; GFX900-SDAG-NEXT: s_setpc_b64 s[30:31]1798;1799; GFX900-GISEL-LABEL: v_minimumnum_f64_v_s:1800; GFX900-GISEL: ; %bb.0:1801; GFX900-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1802; GFX900-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]1803; GFX900-GISEL-NEXT: v_max_f64 v[2:3], s[16:17], s[16:17]1804; GFX900-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]1805; GFX900-GISEL-NEXT: s_setpc_b64 s[30:31]1806;1807; GFX950-SDAG-LABEL: v_minimumnum_f64_v_s:1808; GFX950-SDAG: ; %bb.0:1809; GFX950-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1810; GFX950-SDAG-NEXT: v_max_f64 v[2:3], s[0:1], s[0:1]1811; GFX950-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]1812; GFX950-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]1813; GFX950-SDAG-NEXT: s_setpc_b64 s[30:31]1814;1815; GFX950-GISEL-LABEL: v_minimumnum_f64_v_s:1816; GFX950-GISEL: ; %bb.0:1817; GFX950-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1818; GFX950-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]1819; GFX950-GISEL-NEXT: v_max_f64 v[2:3], s[0:1], s[0:1]1820; GFX950-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]1821; GFX950-GISEL-NEXT: s_setpc_b64 s[30:31]1822;1823; GFX10-LABEL: v_minimumnum_f64_v_s:1824; GFX10: ; %bb.0:1825; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1826; GFX10-NEXT: v_max_f64 v[2:3], s[16:17], s[16:17]1827; GFX10-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]1828; GFX10-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]1829; GFX10-NEXT: s_setpc_b64 s[30:31]1830;1831; GFX11-LABEL: v_minimumnum_f64_v_s:1832; GFX11: ; %bb.0:1833; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1834; GFX11-NEXT: v_max_f64 v[2:3], s[0:1], s[0:1]1835; GFX11-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]1836; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_1)1837; GFX11-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]1838; GFX11-NEXT: s_setpc_b64 s[30:31]1839;1840; GFX12-LABEL: v_minimumnum_f64_v_s:1841; GFX12: ; %bb.0:1842; GFX12-NEXT: s_wait_loadcnt_dscnt 0x01843; GFX12-NEXT: s_wait_expcnt 0x01844; GFX12-NEXT: s_wait_samplecnt 0x01845; GFX12-NEXT: s_wait_bvhcnt 0x01846; GFX12-NEXT: s_wait_kmcnt 0x01847; GFX12-NEXT: v_max_num_f64_e64 v[2:3], s[0:1], s[0:1]1848; GFX12-NEXT: v_max_num_f64_e32 v[0:1], v[0:1], v[0:1]1849; GFX12-NEXT: s_delay_alu instid0(VALU_DEP_1)1850; GFX12-NEXT: v_min_num_f64_e32 v[0:1], v[0:1], v[2:3]1851; GFX12-NEXT: s_setpc_b64 s[30:31]1852 %result = call double @llvm.minimumnum.f64(double %x, double %y)1853 ret double %result1854}1855 1856define double @v_minimumnum_f64_s_s(double inreg %x, double inreg %y) {1857; GFX7-SDAG-LABEL: v_minimumnum_f64_s_s:1858; GFX7-SDAG: ; %bb.0:1859; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1860; GFX7-SDAG-NEXT: v_max_f64 v[0:1], s[18:19], s[18:19]1861; GFX7-SDAG-NEXT: v_max_f64 v[2:3], s[16:17], s[16:17]1862; GFX7-SDAG-NEXT: v_min_f64 v[0:1], v[2:3], v[0:1]1863; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]1864;1865; GFX7-GISEL-LABEL: v_minimumnum_f64_s_s:1866; GFX7-GISEL: ; %bb.0:1867; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1868; GFX7-GISEL-NEXT: v_max_f64 v[0:1], s[16:17], s[16:17]1869; GFX7-GISEL-NEXT: v_max_f64 v[2:3], s[18:19], s[18:19]1870; GFX7-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]1871; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]1872;1873; GFX8-SDAG-LABEL: v_minimumnum_f64_s_s:1874; GFX8-SDAG: ; %bb.0:1875; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1876; GFX8-SDAG-NEXT: v_max_f64 v[0:1], s[18:19], s[18:19]1877; GFX8-SDAG-NEXT: v_max_f64 v[2:3], s[16:17], s[16:17]1878; GFX8-SDAG-NEXT: v_min_f64 v[0:1], v[2:3], v[0:1]1879; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]1880;1881; GFX8-GISEL-LABEL: v_minimumnum_f64_s_s:1882; GFX8-GISEL: ; %bb.0:1883; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1884; GFX8-GISEL-NEXT: v_max_f64 v[0:1], s[16:17], s[16:17]1885; GFX8-GISEL-NEXT: v_max_f64 v[2:3], s[18:19], s[18:19]1886; GFX8-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]1887; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]1888;1889; GFX900-SDAG-LABEL: v_minimumnum_f64_s_s:1890; GFX900-SDAG: ; %bb.0:1891; GFX900-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1892; GFX900-SDAG-NEXT: v_max_f64 v[0:1], s[18:19], s[18:19]1893; GFX900-SDAG-NEXT: v_max_f64 v[2:3], s[16:17], s[16:17]1894; GFX900-SDAG-NEXT: v_min_f64 v[0:1], v[2:3], v[0:1]1895; GFX900-SDAG-NEXT: s_setpc_b64 s[30:31]1896;1897; GFX900-GISEL-LABEL: v_minimumnum_f64_s_s:1898; GFX900-GISEL: ; %bb.0:1899; GFX900-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1900; GFX900-GISEL-NEXT: v_max_f64 v[0:1], s[16:17], s[16:17]1901; GFX900-GISEL-NEXT: v_max_f64 v[2:3], s[18:19], s[18:19]1902; GFX900-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]1903; GFX900-GISEL-NEXT: s_setpc_b64 s[30:31]1904;1905; GFX950-SDAG-LABEL: v_minimumnum_f64_s_s:1906; GFX950-SDAG: ; %bb.0:1907; GFX950-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1908; GFX950-SDAG-NEXT: v_max_f64 v[0:1], s[2:3], s[2:3]1909; GFX950-SDAG-NEXT: v_max_f64 v[2:3], s[0:1], s[0:1]1910; GFX950-SDAG-NEXT: v_min_f64 v[0:1], v[2:3], v[0:1]1911; GFX950-SDAG-NEXT: s_setpc_b64 s[30:31]1912;1913; GFX950-GISEL-LABEL: v_minimumnum_f64_s_s:1914; GFX950-GISEL: ; %bb.0:1915; GFX950-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1916; GFX950-GISEL-NEXT: v_max_f64 v[0:1], s[0:1], s[0:1]1917; GFX950-GISEL-NEXT: v_max_f64 v[2:3], s[2:3], s[2:3]1918; GFX950-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]1919; GFX950-GISEL-NEXT: s_setpc_b64 s[30:31]1920;1921; GFX10-SDAG-LABEL: v_minimumnum_f64_s_s:1922; GFX10-SDAG: ; %bb.0:1923; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1924; GFX10-SDAG-NEXT: v_max_f64 v[0:1], s[18:19], s[18:19]1925; GFX10-SDAG-NEXT: v_max_f64 v[2:3], s[16:17], s[16:17]1926; GFX10-SDAG-NEXT: v_min_f64 v[0:1], v[2:3], v[0:1]1927; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]1928;1929; GFX10-GISEL-LABEL: v_minimumnum_f64_s_s:1930; GFX10-GISEL: ; %bb.0:1931; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1932; GFX10-GISEL-NEXT: v_max_f64 v[0:1], s[16:17], s[16:17]1933; GFX10-GISEL-NEXT: v_max_f64 v[2:3], s[18:19], s[18:19]1934; GFX10-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]1935; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]1936;1937; GFX11-SDAG-LABEL: v_minimumnum_f64_s_s:1938; GFX11-SDAG: ; %bb.0:1939; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1940; GFX11-SDAG-NEXT: v_max_f64 v[0:1], s[2:3], s[2:3]1941; GFX11-SDAG-NEXT: v_max_f64 v[2:3], s[0:1], s[0:1]1942; GFX11-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)1943; GFX11-SDAG-NEXT: v_min_f64 v[0:1], v[2:3], v[0:1]1944; GFX11-SDAG-NEXT: s_setpc_b64 s[30:31]1945;1946; GFX11-GISEL-LABEL: v_minimumnum_f64_s_s:1947; GFX11-GISEL: ; %bb.0:1948; GFX11-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1949; GFX11-GISEL-NEXT: v_max_f64 v[0:1], s[0:1], s[0:1]1950; GFX11-GISEL-NEXT: v_max_f64 v[2:3], s[2:3], s[2:3]1951; GFX11-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)1952; GFX11-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]1953; GFX11-GISEL-NEXT: s_setpc_b64 s[30:31]1954;1955; GFX12-SDAG-LABEL: v_minimumnum_f64_s_s:1956; GFX12-SDAG: ; %bb.0:1957; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x01958; GFX12-SDAG-NEXT: s_wait_expcnt 0x01959; GFX12-SDAG-NEXT: s_wait_samplecnt 0x01960; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x01961; GFX12-SDAG-NEXT: s_wait_kmcnt 0x01962; GFX12-SDAG-NEXT: v_max_num_f64_e64 v[0:1], s[2:3], s[2:3]1963; GFX12-SDAG-NEXT: v_max_num_f64_e64 v[2:3], s[0:1], s[0:1]1964; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)1965; GFX12-SDAG-NEXT: v_min_num_f64_e32 v[0:1], v[2:3], v[0:1]1966; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]1967;1968; GFX12-GISEL-LABEL: v_minimumnum_f64_s_s:1969; GFX12-GISEL: ; %bb.0:1970; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x01971; GFX12-GISEL-NEXT: s_wait_expcnt 0x01972; GFX12-GISEL-NEXT: s_wait_samplecnt 0x01973; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x01974; GFX12-GISEL-NEXT: s_wait_kmcnt 0x01975; GFX12-GISEL-NEXT: v_max_num_f64_e64 v[0:1], s[0:1], s[0:1]1976; GFX12-GISEL-NEXT: v_max_num_f64_e64 v[2:3], s[2:3], s[2:3]1977; GFX12-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)1978; GFX12-GISEL-NEXT: v_min_num_f64_e32 v[0:1], v[0:1], v[2:3]1979; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]1980 %result = call double @llvm.minimumnum.f64(double %x, double %y)1981 ret double %result1982}1983 1984define float @v_minimumnum_f32_fabs_rhs(float %x, float %y) {1985; GFX7-SDAG-LABEL: v_minimumnum_f32_fabs_rhs:1986; GFX7-SDAG: ; %bb.0:1987; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1988; GFX7-SDAG-NEXT: v_mul_f32_e64 v1, 1.0, |v1|1989; GFX7-SDAG-NEXT: v_mul_f32_e32 v0, 1.0, v01990; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v11991; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]1992;1993; GFX7-GISEL-LABEL: v_minimumnum_f32_fabs_rhs:1994; GFX7-GISEL: ; %bb.0:1995; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1996; GFX7-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v01997; GFX7-GISEL-NEXT: v_mul_f32_e64 v1, 1.0, |v1|1998; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v11999; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]2000;2001; GFX8-SDAG-LABEL: v_minimumnum_f32_fabs_rhs:2002; GFX8-SDAG: ; %bb.0:2003; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2004; GFX8-SDAG-NEXT: v_mul_f32_e64 v1, 1.0, |v1|2005; GFX8-SDAG-NEXT: v_mul_f32_e32 v0, 1.0, v02006; GFX8-SDAG-NEXT: v_min_f32_e32 v0, v0, v12007; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]2008;2009; GFX8-GISEL-LABEL: v_minimumnum_f32_fabs_rhs:2010; GFX8-GISEL: ; %bb.0:2011; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2012; GFX8-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v02013; GFX8-GISEL-NEXT: v_mul_f32_e64 v1, 1.0, |v1|2014; GFX8-GISEL-NEXT: v_min_f32_e32 v0, v0, v12015; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]2016;2017; GFX9-SDAG-LABEL: v_minimumnum_f32_fabs_rhs:2018; GFX9-SDAG: ; %bb.0:2019; GFX9-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2020; GFX9-SDAG-NEXT: v_max_f32_e64 v1, |v1|, |v1|2021; GFX9-SDAG-NEXT: v_max_f32_e32 v0, v0, v02022; GFX9-SDAG-NEXT: v_min_f32_e32 v0, v0, v12023; GFX9-SDAG-NEXT: s_setpc_b64 s[30:31]2024;2025; GFX9-GISEL-LABEL: v_minimumnum_f32_fabs_rhs:2026; GFX9-GISEL: ; %bb.0:2027; GFX9-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2028; GFX9-GISEL-NEXT: v_max_f32_e32 v0, v0, v02029; GFX9-GISEL-NEXT: v_max_f32_e64 v1, |v1|, |v1|2030; GFX9-GISEL-NEXT: v_min_f32_e32 v0, v0, v12031; GFX9-GISEL-NEXT: s_setpc_b64 s[30:31]2032;2033; GFX10-SDAG-LABEL: v_minimumnum_f32_fabs_rhs:2034; GFX10-SDAG: ; %bb.0:2035; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2036; GFX10-SDAG-NEXT: v_max_f32_e64 v1, |v1|, |v1|2037; GFX10-SDAG-NEXT: v_max_f32_e32 v0, v0, v02038; GFX10-SDAG-NEXT: v_min_f32_e32 v0, v0, v12039; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]2040;2041; GFX10-GISEL-LABEL: v_minimumnum_f32_fabs_rhs:2042; GFX10-GISEL: ; %bb.0:2043; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2044; GFX10-GISEL-NEXT: v_max_f32_e32 v0, v0, v02045; GFX10-GISEL-NEXT: v_max_f32_e64 v1, |v1|, |v1|2046; GFX10-GISEL-NEXT: v_min_f32_e32 v0, v0, v12047; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]2048;2049; GFX11-SDAG-LABEL: v_minimumnum_f32_fabs_rhs:2050; GFX11-SDAG: ; %bb.0:2051; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2052; GFX11-SDAG-NEXT: v_max_f32_e64 v1, |v1|, |v1|2053; GFX11-SDAG-NEXT: v_max_f32_e32 v0, v0, v02054; GFX11-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)2055; GFX11-SDAG-NEXT: v_min_f32_e32 v0, v0, v12056; GFX11-SDAG-NEXT: s_setpc_b64 s[30:31]2057;2058; GFX11-GISEL-LABEL: v_minimumnum_f32_fabs_rhs:2059; GFX11-GISEL: ; %bb.0:2060; GFX11-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2061; GFX11-GISEL-NEXT: v_max_f32_e32 v0, v0, v02062; GFX11-GISEL-NEXT: v_max_f32_e64 v1, |v1|, |v1|2063; GFX11-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)2064; GFX11-GISEL-NEXT: v_min_f32_e32 v0, v0, v12065; GFX11-GISEL-NEXT: s_setpc_b64 s[30:31]2066;2067; GFX12-SDAG-LABEL: v_minimumnum_f32_fabs_rhs:2068; GFX12-SDAG: ; %bb.0:2069; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x02070; GFX12-SDAG-NEXT: s_wait_expcnt 0x02071; GFX12-SDAG-NEXT: s_wait_samplecnt 0x02072; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x02073; GFX12-SDAG-NEXT: s_wait_kmcnt 0x02074; GFX12-SDAG-NEXT: v_max_num_f32_e64 v1, |v1|, |v1|2075; GFX12-SDAG-NEXT: v_max_num_f32_e32 v0, v0, v02076; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)2077; GFX12-SDAG-NEXT: v_min_num_f32_e32 v0, v0, v12078; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]2079;2080; GFX12-GISEL-LABEL: v_minimumnum_f32_fabs_rhs:2081; GFX12-GISEL: ; %bb.0:2082; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x02083; GFX12-GISEL-NEXT: s_wait_expcnt 0x02084; GFX12-GISEL-NEXT: s_wait_samplecnt 0x02085; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x02086; GFX12-GISEL-NEXT: s_wait_kmcnt 0x02087; GFX12-GISEL-NEXT: v_max_num_f32_e32 v0, v0, v02088; GFX12-GISEL-NEXT: v_max_num_f32_e64 v1, |v1|, |v1|2089; GFX12-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)2090; GFX12-GISEL-NEXT: v_min_num_f32_e32 v0, v0, v12091; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]2092 %fabs.y = call float @llvm.fabs.f32(float %y)2093 %result = call float @llvm.minimumnum.f32(float %x, float %fabs.y)2094 ret float %result2095}2096 2097define float @v_minimumnum_f32_fneg_fabs_rhs(float %x, float %y) {2098; GFX7-SDAG-LABEL: v_minimumnum_f32_fneg_fabs_rhs:2099; GFX7-SDAG: ; %bb.0:2100; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2101; GFX7-SDAG-NEXT: v_mul_f32_e64 v1, -1.0, |v1|2102; GFX7-SDAG-NEXT: v_mul_f32_e32 v0, 1.0, v02103; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v12104; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]2105;2106; GFX7-GISEL-LABEL: v_minimumnum_f32_fneg_fabs_rhs:2107; GFX7-GISEL: ; %bb.0:2108; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2109; GFX7-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v02110; GFX7-GISEL-NEXT: v_mul_f32_e64 v1, -1.0, |v1|2111; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v12112; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]2113;2114; GFX8-SDAG-LABEL: v_minimumnum_f32_fneg_fabs_rhs:2115; GFX8-SDAG: ; %bb.0:2116; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2117; GFX8-SDAG-NEXT: v_mul_f32_e64 v1, -1.0, |v1|2118; GFX8-SDAG-NEXT: v_mul_f32_e32 v0, 1.0, v02119; GFX8-SDAG-NEXT: v_min_f32_e32 v0, v0, v12120; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]2121;2122; GFX8-GISEL-LABEL: v_minimumnum_f32_fneg_fabs_rhs:2123; GFX8-GISEL: ; %bb.0:2124; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2125; GFX8-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v02126; GFX8-GISEL-NEXT: v_mul_f32_e64 v1, -1.0, |v1|2127; GFX8-GISEL-NEXT: v_min_f32_e32 v0, v0, v12128; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]2129;2130; GFX9-SDAG-LABEL: v_minimumnum_f32_fneg_fabs_rhs:2131; GFX9-SDAG: ; %bb.0:2132; GFX9-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2133; GFX9-SDAG-NEXT: v_max_f32_e64 v1, -|v1|, -|v1|2134; GFX9-SDAG-NEXT: v_max_f32_e32 v0, v0, v02135; GFX9-SDAG-NEXT: v_min_f32_e32 v0, v0, v12136; GFX9-SDAG-NEXT: s_setpc_b64 s[30:31]2137;2138; GFX9-GISEL-LABEL: v_minimumnum_f32_fneg_fabs_rhs:2139; GFX9-GISEL: ; %bb.0:2140; GFX9-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2141; GFX9-GISEL-NEXT: v_max_f32_e32 v0, v0, v02142; GFX9-GISEL-NEXT: v_max_f32_e64 v1, -|v1|, -|v1|2143; GFX9-GISEL-NEXT: v_min_f32_e32 v0, v0, v12144; GFX9-GISEL-NEXT: s_setpc_b64 s[30:31]2145;2146; GFX10-SDAG-LABEL: v_minimumnum_f32_fneg_fabs_rhs:2147; GFX10-SDAG: ; %bb.0:2148; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2149; GFX10-SDAG-NEXT: v_max_f32_e64 v1, -|v1|, -|v1|2150; GFX10-SDAG-NEXT: v_max_f32_e32 v0, v0, v02151; GFX10-SDAG-NEXT: v_min_f32_e32 v0, v0, v12152; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]2153;2154; GFX10-GISEL-LABEL: v_minimumnum_f32_fneg_fabs_rhs:2155; GFX10-GISEL: ; %bb.0:2156; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2157; GFX10-GISEL-NEXT: v_max_f32_e32 v0, v0, v02158; GFX10-GISEL-NEXT: v_max_f32_e64 v1, -|v1|, -|v1|2159; GFX10-GISEL-NEXT: v_min_f32_e32 v0, v0, v12160; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]2161;2162; GFX11-SDAG-LABEL: v_minimumnum_f32_fneg_fabs_rhs:2163; GFX11-SDAG: ; %bb.0:2164; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2165; GFX11-SDAG-NEXT: v_max_f32_e64 v1, -|v1|, -|v1|2166; GFX11-SDAG-NEXT: v_max_f32_e32 v0, v0, v02167; GFX11-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)2168; GFX11-SDAG-NEXT: v_min_f32_e32 v0, v0, v12169; GFX11-SDAG-NEXT: s_setpc_b64 s[30:31]2170;2171; GFX11-GISEL-LABEL: v_minimumnum_f32_fneg_fabs_rhs:2172; GFX11-GISEL: ; %bb.0:2173; GFX11-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2174; GFX11-GISEL-NEXT: v_max_f32_e32 v0, v0, v02175; GFX11-GISEL-NEXT: v_max_f32_e64 v1, -|v1|, -|v1|2176; GFX11-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)2177; GFX11-GISEL-NEXT: v_min_f32_e32 v0, v0, v12178; GFX11-GISEL-NEXT: s_setpc_b64 s[30:31]2179;2180; GFX12-SDAG-LABEL: v_minimumnum_f32_fneg_fabs_rhs:2181; GFX12-SDAG: ; %bb.0:2182; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x02183; GFX12-SDAG-NEXT: s_wait_expcnt 0x02184; GFX12-SDAG-NEXT: s_wait_samplecnt 0x02185; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x02186; GFX12-SDAG-NEXT: s_wait_kmcnt 0x02187; GFX12-SDAG-NEXT: v_max_num_f32_e64 v1, -|v1|, -|v1|2188; GFX12-SDAG-NEXT: v_max_num_f32_e32 v0, v0, v02189; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)2190; GFX12-SDAG-NEXT: v_min_num_f32_e32 v0, v0, v12191; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]2192;2193; GFX12-GISEL-LABEL: v_minimumnum_f32_fneg_fabs_rhs:2194; GFX12-GISEL: ; %bb.0:2195; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x02196; GFX12-GISEL-NEXT: s_wait_expcnt 0x02197; GFX12-GISEL-NEXT: s_wait_samplecnt 0x02198; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x02199; GFX12-GISEL-NEXT: s_wait_kmcnt 0x02200; GFX12-GISEL-NEXT: v_max_num_f32_e32 v0, v0, v02201; GFX12-GISEL-NEXT: v_max_num_f32_e64 v1, -|v1|, -|v1|2202; GFX12-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)2203; GFX12-GISEL-NEXT: v_min_num_f32_e32 v0, v0, v12204; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]2205 %fabs.y = call float @llvm.fabs.f32(float %y)2206 %fneg.fabs.y = fneg float %fabs.y2207 %result = call float @llvm.minimumnum.f32(float %x, float %fneg.fabs.y)2208 ret float %result2209}2210 2211define float @v_minimumnum_f32_fabs(float %x, float %y) {2212; GFX7-SDAG-LABEL: v_minimumnum_f32_fabs:2213; GFX7-SDAG: ; %bb.0:2214; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2215; GFX7-SDAG-NEXT: v_mul_f32_e64 v1, 1.0, |v1|2216; GFX7-SDAG-NEXT: v_mul_f32_e64 v0, 1.0, |v0|2217; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v12218; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]2219;2220; GFX7-GISEL-LABEL: v_minimumnum_f32_fabs:2221; GFX7-GISEL: ; %bb.0:2222; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2223; GFX7-GISEL-NEXT: v_mul_f32_e64 v0, 1.0, |v0|2224; GFX7-GISEL-NEXT: v_mul_f32_e64 v1, 1.0, |v1|2225; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v12226; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]2227;2228; GFX8-SDAG-LABEL: v_minimumnum_f32_fabs:2229; GFX8-SDAG: ; %bb.0:2230; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2231; GFX8-SDAG-NEXT: v_mul_f32_e64 v1, 1.0, |v1|2232; GFX8-SDAG-NEXT: v_mul_f32_e64 v0, 1.0, |v0|2233; GFX8-SDAG-NEXT: v_min_f32_e32 v0, v0, v12234; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]2235;2236; GFX8-GISEL-LABEL: v_minimumnum_f32_fabs:2237; GFX8-GISEL: ; %bb.0:2238; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2239; GFX8-GISEL-NEXT: v_mul_f32_e64 v0, 1.0, |v0|2240; GFX8-GISEL-NEXT: v_mul_f32_e64 v1, 1.0, |v1|2241; GFX8-GISEL-NEXT: v_min_f32_e32 v0, v0, v12242; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]2243;2244; GFX9-SDAG-LABEL: v_minimumnum_f32_fabs:2245; GFX9-SDAG: ; %bb.0:2246; GFX9-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2247; GFX9-SDAG-NEXT: v_max_f32_e64 v1, |v1|, |v1|2248; GFX9-SDAG-NEXT: v_max_f32_e64 v0, |v0|, |v0|2249; GFX9-SDAG-NEXT: v_min_f32_e32 v0, v0, v12250; GFX9-SDAG-NEXT: s_setpc_b64 s[30:31]2251;2252; GFX9-GISEL-LABEL: v_minimumnum_f32_fabs:2253; GFX9-GISEL: ; %bb.0:2254; GFX9-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2255; GFX9-GISEL-NEXT: v_max_f32_e64 v0, |v0|, |v0|2256; GFX9-GISEL-NEXT: v_max_f32_e64 v1, |v1|, |v1|2257; GFX9-GISEL-NEXT: v_min_f32_e32 v0, v0, v12258; GFX9-GISEL-NEXT: s_setpc_b64 s[30:31]2259;2260; GFX10-SDAG-LABEL: v_minimumnum_f32_fabs:2261; GFX10-SDAG: ; %bb.0:2262; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2263; GFX10-SDAG-NEXT: v_max_f32_e64 v1, |v1|, |v1|2264; GFX10-SDAG-NEXT: v_max_f32_e64 v0, |v0|, |v0|2265; GFX10-SDAG-NEXT: v_min_f32_e32 v0, v0, v12266; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]2267;2268; GFX10-GISEL-LABEL: v_minimumnum_f32_fabs:2269; GFX10-GISEL: ; %bb.0:2270; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2271; GFX10-GISEL-NEXT: v_max_f32_e64 v0, |v0|, |v0|2272; GFX10-GISEL-NEXT: v_max_f32_e64 v1, |v1|, |v1|2273; GFX10-GISEL-NEXT: v_min_f32_e32 v0, v0, v12274; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]2275;2276; GFX11-SDAG-LABEL: v_minimumnum_f32_fabs:2277; GFX11-SDAG: ; %bb.0:2278; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2279; GFX11-SDAG-NEXT: v_max_f32_e64 v1, |v1|, |v1|2280; GFX11-SDAG-NEXT: v_max_f32_e64 v0, |v0|, |v0|2281; GFX11-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)2282; GFX11-SDAG-NEXT: v_min_f32_e32 v0, v0, v12283; GFX11-SDAG-NEXT: s_setpc_b64 s[30:31]2284;2285; GFX11-GISEL-LABEL: v_minimumnum_f32_fabs:2286; GFX11-GISEL: ; %bb.0:2287; GFX11-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2288; GFX11-GISEL-NEXT: v_max_f32_e64 v0, |v0|, |v0|2289; GFX11-GISEL-NEXT: v_max_f32_e64 v1, |v1|, |v1|2290; GFX11-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)2291; GFX11-GISEL-NEXT: v_min_f32_e32 v0, v0, v12292; GFX11-GISEL-NEXT: s_setpc_b64 s[30:31]2293;2294; GFX12-SDAG-LABEL: v_minimumnum_f32_fabs:2295; GFX12-SDAG: ; %bb.0:2296; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x02297; GFX12-SDAG-NEXT: s_wait_expcnt 0x02298; GFX12-SDAG-NEXT: s_wait_samplecnt 0x02299; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x02300; GFX12-SDAG-NEXT: s_wait_kmcnt 0x02301; GFX12-SDAG-NEXT: v_max_num_f32_e64 v1, |v1|, |v1|2302; GFX12-SDAG-NEXT: v_max_num_f32_e64 v0, |v0|, |v0|2303; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)2304; GFX12-SDAG-NEXT: v_min_num_f32_e32 v0, v0, v12305; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]2306;2307; GFX12-GISEL-LABEL: v_minimumnum_f32_fabs:2308; GFX12-GISEL: ; %bb.0:2309; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x02310; GFX12-GISEL-NEXT: s_wait_expcnt 0x02311; GFX12-GISEL-NEXT: s_wait_samplecnt 0x02312; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x02313; GFX12-GISEL-NEXT: s_wait_kmcnt 0x02314; GFX12-GISEL-NEXT: v_max_num_f32_e64 v0, |v0|, |v0|2315; GFX12-GISEL-NEXT: v_max_num_f32_e64 v1, |v1|, |v1|2316; GFX12-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)2317; GFX12-GISEL-NEXT: v_min_num_f32_e32 v0, v0, v12318; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]2319 %fabs.x = call float @llvm.fabs.f32(float %x)2320 %fabs.y = call float @llvm.fabs.f32(float %y)2321 %result = call float @llvm.minimumnum.f32(float %fabs.x, float %fabs.y)2322 ret float %result2323}2324 2325define float @v_minimumnum_f32_fneg(float %x, float %y) {2326; GFX7-SDAG-LABEL: v_minimumnum_f32_fneg:2327; GFX7-SDAG: ; %bb.0:2328; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2329; GFX7-SDAG-NEXT: v_mul_f32_e32 v1, -1.0, v12330; GFX7-SDAG-NEXT: v_mul_f32_e32 v0, -1.0, v02331; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v12332; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]2333;2334; GFX7-GISEL-LABEL: v_minimumnum_f32_fneg:2335; GFX7-GISEL: ; %bb.0:2336; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2337; GFX7-GISEL-NEXT: v_mul_f32_e32 v0, -1.0, v02338; GFX7-GISEL-NEXT: v_mul_f32_e32 v1, -1.0, v12339; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v12340; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]2341;2342; GFX8-SDAG-LABEL: v_minimumnum_f32_fneg:2343; GFX8-SDAG: ; %bb.0:2344; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2345; GFX8-SDAG-NEXT: v_mul_f32_e32 v1, -1.0, v12346; GFX8-SDAG-NEXT: v_mul_f32_e32 v0, -1.0, v02347; GFX8-SDAG-NEXT: v_min_f32_e32 v0, v0, v12348; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]2349;2350; GFX8-GISEL-LABEL: v_minimumnum_f32_fneg:2351; GFX8-GISEL: ; %bb.0:2352; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2353; GFX8-GISEL-NEXT: v_mul_f32_e32 v0, -1.0, v02354; GFX8-GISEL-NEXT: v_mul_f32_e32 v1, -1.0, v12355; GFX8-GISEL-NEXT: v_min_f32_e32 v0, v0, v12356; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]2357;2358; GFX9-SDAG-LABEL: v_minimumnum_f32_fneg:2359; GFX9-SDAG: ; %bb.0:2360; GFX9-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2361; GFX9-SDAG-NEXT: v_max_f32_e64 v1, -v1, -v12362; GFX9-SDAG-NEXT: v_max_f32_e64 v0, -v0, -v02363; GFX9-SDAG-NEXT: v_min_f32_e32 v0, v0, v12364; GFX9-SDAG-NEXT: s_setpc_b64 s[30:31]2365;2366; GFX9-GISEL-LABEL: v_minimumnum_f32_fneg:2367; GFX9-GISEL: ; %bb.0:2368; GFX9-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2369; GFX9-GISEL-NEXT: v_max_f32_e64 v0, -v0, -v02370; GFX9-GISEL-NEXT: v_max_f32_e64 v1, -v1, -v12371; GFX9-GISEL-NEXT: v_min_f32_e32 v0, v0, v12372; GFX9-GISEL-NEXT: s_setpc_b64 s[30:31]2373;2374; GFX10-SDAG-LABEL: v_minimumnum_f32_fneg:2375; GFX10-SDAG: ; %bb.0:2376; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2377; GFX10-SDAG-NEXT: v_max_f32_e64 v1, -v1, -v12378; GFX10-SDAG-NEXT: v_max_f32_e64 v0, -v0, -v02379; GFX10-SDAG-NEXT: v_min_f32_e32 v0, v0, v12380; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]2381;2382; GFX10-GISEL-LABEL: v_minimumnum_f32_fneg:2383; GFX10-GISEL: ; %bb.0:2384; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2385; GFX10-GISEL-NEXT: v_max_f32_e64 v0, -v0, -v02386; GFX10-GISEL-NEXT: v_max_f32_e64 v1, -v1, -v12387; GFX10-GISEL-NEXT: v_min_f32_e32 v0, v0, v12388; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]2389;2390; GFX11-SDAG-LABEL: v_minimumnum_f32_fneg:2391; GFX11-SDAG: ; %bb.0:2392; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2393; GFX11-SDAG-NEXT: v_max_f32_e64 v1, -v1, -v12394; GFX11-SDAG-NEXT: v_max_f32_e64 v0, -v0, -v02395; GFX11-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)2396; GFX11-SDAG-NEXT: v_min_f32_e32 v0, v0, v12397; GFX11-SDAG-NEXT: s_setpc_b64 s[30:31]2398;2399; GFX11-GISEL-LABEL: v_minimumnum_f32_fneg:2400; GFX11-GISEL: ; %bb.0:2401; GFX11-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2402; GFX11-GISEL-NEXT: v_max_f32_e64 v0, -v0, -v02403; GFX11-GISEL-NEXT: v_max_f32_e64 v1, -v1, -v12404; GFX11-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)2405; GFX11-GISEL-NEXT: v_min_f32_e32 v0, v0, v12406; GFX11-GISEL-NEXT: s_setpc_b64 s[30:31]2407;2408; GFX12-SDAG-LABEL: v_minimumnum_f32_fneg:2409; GFX12-SDAG: ; %bb.0:2410; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x02411; GFX12-SDAG-NEXT: s_wait_expcnt 0x02412; GFX12-SDAG-NEXT: s_wait_samplecnt 0x02413; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x02414; GFX12-SDAG-NEXT: s_wait_kmcnt 0x02415; GFX12-SDAG-NEXT: v_max_num_f32_e64 v1, -v1, -v12416; GFX12-SDAG-NEXT: v_max_num_f32_e64 v0, -v0, -v02417; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)2418; GFX12-SDAG-NEXT: v_min_num_f32_e32 v0, v0, v12419; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]2420;2421; GFX12-GISEL-LABEL: v_minimumnum_f32_fneg:2422; GFX12-GISEL: ; %bb.0:2423; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x02424; GFX12-GISEL-NEXT: s_wait_expcnt 0x02425; GFX12-GISEL-NEXT: s_wait_samplecnt 0x02426; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x02427; GFX12-GISEL-NEXT: s_wait_kmcnt 0x02428; GFX12-GISEL-NEXT: v_max_num_f32_e64 v0, -v0, -v02429; GFX12-GISEL-NEXT: v_max_num_f32_e64 v1, -v1, -v12430; GFX12-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)2431; GFX12-GISEL-NEXT: v_min_num_f32_e32 v0, v0, v12432; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]2433 %fneg.x = fneg float %x2434 %fneg.y = fneg float %y2435 %result = call float @llvm.minimumnum.f32(float %fneg.x, float %fneg.y)2436 ret float %result2437}2438 2439define half @v_minimumnum_f16_fabs_rhs(half %x, half %y) {2440; GFX7-SDAG-LABEL: v_minimumnum_f16_fabs_rhs:2441; GFX7-SDAG: ; %bb.0:2442; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2443; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v02444; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v1, v12445; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v02446; GFX7-SDAG-NEXT: v_cvt_f32_f16_e64 v1, |v1|2447; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v12448; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]2449;2450; GFX7-GISEL-LABEL: v_minimumnum_f16_fabs_rhs:2451; GFX7-GISEL: ; %bb.0:2452; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2453; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v0, v02454; GFX7-GISEL-NEXT: v_cvt_f32_f16_e64 v1, |v1|2455; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v12456; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v0, v02457; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]2458;2459; GFX8-SDAG-LABEL: v_minimumnum_f16_fabs_rhs:2460; GFX8-SDAG: ; %bb.0:2461; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2462; GFX8-SDAG-NEXT: v_max_f16_e64 v1, |v1|, |v1|2463; GFX8-SDAG-NEXT: v_max_f16_e32 v0, v0, v02464; GFX8-SDAG-NEXT: v_min_f16_e32 v0, v0, v12465; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]2466;2467; GFX8-GISEL-LABEL: v_minimumnum_f16_fabs_rhs:2468; GFX8-GISEL: ; %bb.0:2469; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2470; GFX8-GISEL-NEXT: v_max_f16_e32 v0, v0, v02471; GFX8-GISEL-NEXT: v_max_f16_e64 v1, |v1|, |v1|2472; GFX8-GISEL-NEXT: v_min_f16_e32 v0, v0, v12473; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]2474;2475; GFX9-SDAG-LABEL: v_minimumnum_f16_fabs_rhs:2476; GFX9-SDAG: ; %bb.0:2477; GFX9-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2478; GFX9-SDAG-NEXT: v_max_f16_e64 v1, |v1|, |v1|2479; GFX9-SDAG-NEXT: v_max_f16_e32 v0, v0, v02480; GFX9-SDAG-NEXT: v_min_f16_e32 v0, v0, v12481; GFX9-SDAG-NEXT: s_setpc_b64 s[30:31]2482;2483; GFX9-GISEL-LABEL: v_minimumnum_f16_fabs_rhs:2484; GFX9-GISEL: ; %bb.0:2485; GFX9-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2486; GFX9-GISEL-NEXT: v_max_f16_e32 v0, v0, v02487; GFX9-GISEL-NEXT: v_max_f16_e64 v1, |v1|, |v1|2488; GFX9-GISEL-NEXT: v_min_f16_e32 v0, v0, v12489; GFX9-GISEL-NEXT: s_setpc_b64 s[30:31]2490;2491; GFX10-SDAG-LABEL: v_minimumnum_f16_fabs_rhs:2492; GFX10-SDAG: ; %bb.0:2493; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2494; GFX10-SDAG-NEXT: v_max_f16_e64 v1, |v1|, |v1|2495; GFX10-SDAG-NEXT: v_max_f16_e32 v0, v0, v02496; GFX10-SDAG-NEXT: v_min_f16_e32 v0, v0, v12497; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]2498;2499; GFX10-GISEL-LABEL: v_minimumnum_f16_fabs_rhs:2500; GFX10-GISEL: ; %bb.0:2501; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2502; GFX10-GISEL-NEXT: v_max_f16_e32 v0, v0, v02503; GFX10-GISEL-NEXT: v_max_f16_e64 v1, |v1|, |v1|2504; GFX10-GISEL-NEXT: v_min_f16_e32 v0, v0, v12505; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]2506;2507; GFX11-TRUE16-SDAG-LABEL: v_minimumnum_f16_fabs_rhs:2508; GFX11-TRUE16-SDAG: ; %bb.0:2509; GFX11-TRUE16-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2510; GFX11-TRUE16-SDAG-NEXT: v_max_f16_e64 v0.h, |v1.l|, |v1.l|2511; GFX11-TRUE16-SDAG-NEXT: v_max_f16_e32 v0.l, v0.l, v0.l2512; GFX11-TRUE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)2513; GFX11-TRUE16-SDAG-NEXT: v_min_f16_e32 v0.l, v0.l, v0.h2514; GFX11-TRUE16-SDAG-NEXT: s_setpc_b64 s[30:31]2515;2516; GFX11-TRUE16-GISEL-LABEL: v_minimumnum_f16_fabs_rhs:2517; GFX11-TRUE16-GISEL: ; %bb.0:2518; GFX11-TRUE16-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2519; GFX11-TRUE16-GISEL-NEXT: v_max_f16_e32 v0.l, v0.l, v0.l2520; GFX11-TRUE16-GISEL-NEXT: v_max_f16_e64 v0.h, |v1.l|, |v1.l|2521; GFX11-TRUE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)2522; GFX11-TRUE16-GISEL-NEXT: v_min_f16_e32 v0.l, v0.l, v0.h2523; GFX11-TRUE16-GISEL-NEXT: s_setpc_b64 s[30:31]2524;2525; GFX11-FAKE16-SDAG-LABEL: v_minimumnum_f16_fabs_rhs:2526; GFX11-FAKE16-SDAG: ; %bb.0:2527; GFX11-FAKE16-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2528; GFX11-FAKE16-SDAG-NEXT: v_max_f16_e64 v1, |v1|, |v1|2529; GFX11-FAKE16-SDAG-NEXT: v_max_f16_e32 v0, v0, v02530; GFX11-FAKE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)2531; GFX11-FAKE16-SDAG-NEXT: v_min_f16_e32 v0, v0, v12532; GFX11-FAKE16-SDAG-NEXT: s_setpc_b64 s[30:31]2533;2534; GFX11-FAKE16-GISEL-LABEL: v_minimumnum_f16_fabs_rhs:2535; GFX11-FAKE16-GISEL: ; %bb.0:2536; GFX11-FAKE16-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2537; GFX11-FAKE16-GISEL-NEXT: v_max_f16_e32 v0, v0, v02538; GFX11-FAKE16-GISEL-NEXT: v_max_f16_e64 v1, |v1|, |v1|2539; GFX11-FAKE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)2540; GFX11-FAKE16-GISEL-NEXT: v_min_f16_e32 v0, v0, v12541; GFX11-FAKE16-GISEL-NEXT: s_setpc_b64 s[30:31]2542;2543; GFX12-TRUE16-SDAG-LABEL: v_minimumnum_f16_fabs_rhs:2544; GFX12-TRUE16-SDAG: ; %bb.0:2545; GFX12-TRUE16-SDAG-NEXT: s_wait_loadcnt_dscnt 0x02546; GFX12-TRUE16-SDAG-NEXT: s_wait_expcnt 0x02547; GFX12-TRUE16-SDAG-NEXT: s_wait_samplecnt 0x02548; GFX12-TRUE16-SDAG-NEXT: s_wait_bvhcnt 0x02549; GFX12-TRUE16-SDAG-NEXT: s_wait_kmcnt 0x02550; GFX12-TRUE16-SDAG-NEXT: v_max_num_f16_e64 v0.h, |v1.l|, |v1.l|2551; GFX12-TRUE16-SDAG-NEXT: v_max_num_f16_e32 v0.l, v0.l, v0.l2552; GFX12-TRUE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)2553; GFX12-TRUE16-SDAG-NEXT: v_min_num_f16_e32 v0.l, v0.l, v0.h2554; GFX12-TRUE16-SDAG-NEXT: s_setpc_b64 s[30:31]2555;2556; GFX12-TRUE16-GISEL-LABEL: v_minimumnum_f16_fabs_rhs:2557; GFX12-TRUE16-GISEL: ; %bb.0:2558; GFX12-TRUE16-GISEL-NEXT: s_wait_loadcnt_dscnt 0x02559; GFX12-TRUE16-GISEL-NEXT: s_wait_expcnt 0x02560; GFX12-TRUE16-GISEL-NEXT: s_wait_samplecnt 0x02561; GFX12-TRUE16-GISEL-NEXT: s_wait_bvhcnt 0x02562; GFX12-TRUE16-GISEL-NEXT: s_wait_kmcnt 0x02563; GFX12-TRUE16-GISEL-NEXT: v_max_num_f16_e32 v0.l, v0.l, v0.l2564; GFX12-TRUE16-GISEL-NEXT: v_max_num_f16_e64 v0.h, |v1.l|, |v1.l|2565; GFX12-TRUE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)2566; GFX12-TRUE16-GISEL-NEXT: v_min_num_f16_e32 v0.l, v0.l, v0.h2567; GFX12-TRUE16-GISEL-NEXT: s_setpc_b64 s[30:31]2568;2569; GFX12-FAKE16-SDAG-LABEL: v_minimumnum_f16_fabs_rhs:2570; GFX12-FAKE16-SDAG: ; %bb.0:2571; GFX12-FAKE16-SDAG-NEXT: s_wait_loadcnt_dscnt 0x02572; GFX12-FAKE16-SDAG-NEXT: s_wait_expcnt 0x02573; GFX12-FAKE16-SDAG-NEXT: s_wait_samplecnt 0x02574; GFX12-FAKE16-SDAG-NEXT: s_wait_bvhcnt 0x02575; GFX12-FAKE16-SDAG-NEXT: s_wait_kmcnt 0x02576; GFX12-FAKE16-SDAG-NEXT: v_max_num_f16_e64 v1, |v1|, |v1|2577; GFX12-FAKE16-SDAG-NEXT: v_max_num_f16_e32 v0, v0, v02578; GFX12-FAKE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)2579; GFX12-FAKE16-SDAG-NEXT: v_min_num_f16_e32 v0, v0, v12580; GFX12-FAKE16-SDAG-NEXT: s_setpc_b64 s[30:31]2581;2582; GFX12-FAKE16-GISEL-LABEL: v_minimumnum_f16_fabs_rhs:2583; GFX12-FAKE16-GISEL: ; %bb.0:2584; GFX12-FAKE16-GISEL-NEXT: s_wait_loadcnt_dscnt 0x02585; GFX12-FAKE16-GISEL-NEXT: s_wait_expcnt 0x02586; GFX12-FAKE16-GISEL-NEXT: s_wait_samplecnt 0x02587; GFX12-FAKE16-GISEL-NEXT: s_wait_bvhcnt 0x02588; GFX12-FAKE16-GISEL-NEXT: s_wait_kmcnt 0x02589; GFX12-FAKE16-GISEL-NEXT: v_max_num_f16_e32 v0, v0, v02590; GFX12-FAKE16-GISEL-NEXT: v_max_num_f16_e64 v1, |v1|, |v1|2591; GFX12-FAKE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)2592; GFX12-FAKE16-GISEL-NEXT: v_min_num_f16_e32 v0, v0, v12593; GFX12-FAKE16-GISEL-NEXT: s_setpc_b64 s[30:31]2594 %fabs.y = call half @llvm.fabs.f16(half %y)2595 %result = call half @llvm.minimumnum.f16(half %x, half %fabs.y)2596 ret half %result2597}2598 2599define half @v_minimumnum_f16_fneg_fabs_rhs(half %x, half %y) {2600; GFX7-SDAG-LABEL: v_minimumnum_f16_fneg_fabs_rhs:2601; GFX7-SDAG: ; %bb.0:2602; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2603; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v02604; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v1, v12605; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v02606; GFX7-SDAG-NEXT: v_cvt_f32_f16_e64 v1, -|v1|2607; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v12608; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]2609;2610; GFX7-GISEL-LABEL: v_minimumnum_f16_fneg_fabs_rhs:2611; GFX7-GISEL: ; %bb.0:2612; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2613; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v0, v02614; GFX7-GISEL-NEXT: v_cvt_f32_f16_e64 v1, -|v1|2615; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v12616; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v0, v02617; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]2618;2619; GFX8-SDAG-LABEL: v_minimumnum_f16_fneg_fabs_rhs:2620; GFX8-SDAG: ; %bb.0:2621; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2622; GFX8-SDAG-NEXT: v_max_f16_e64 v1, -|v1|, -|v1|2623; GFX8-SDAG-NEXT: v_max_f16_e32 v0, v0, v02624; GFX8-SDAG-NEXT: v_min_f16_e32 v0, v0, v12625; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]2626;2627; GFX8-GISEL-LABEL: v_minimumnum_f16_fneg_fabs_rhs:2628; GFX8-GISEL: ; %bb.0:2629; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2630; GFX8-GISEL-NEXT: v_max_f16_e32 v0, v0, v02631; GFX8-GISEL-NEXT: v_max_f16_e64 v1, -|v1|, -|v1|2632; GFX8-GISEL-NEXT: v_min_f16_e32 v0, v0, v12633; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]2634;2635; GFX9-SDAG-LABEL: v_minimumnum_f16_fneg_fabs_rhs:2636; GFX9-SDAG: ; %bb.0:2637; GFX9-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2638; GFX9-SDAG-NEXT: v_max_f16_e64 v1, -|v1|, -|v1|2639; GFX9-SDAG-NEXT: v_max_f16_e32 v0, v0, v02640; GFX9-SDAG-NEXT: v_min_f16_e32 v0, v0, v12641; GFX9-SDAG-NEXT: s_setpc_b64 s[30:31]2642;2643; GFX9-GISEL-LABEL: v_minimumnum_f16_fneg_fabs_rhs:2644; GFX9-GISEL: ; %bb.0:2645; GFX9-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2646; GFX9-GISEL-NEXT: v_max_f16_e32 v0, v0, v02647; GFX9-GISEL-NEXT: v_max_f16_e64 v1, -|v1|, -|v1|2648; GFX9-GISEL-NEXT: v_min_f16_e32 v0, v0, v12649; GFX9-GISEL-NEXT: s_setpc_b64 s[30:31]2650;2651; GFX10-SDAG-LABEL: v_minimumnum_f16_fneg_fabs_rhs:2652; GFX10-SDAG: ; %bb.0:2653; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2654; GFX10-SDAG-NEXT: v_max_f16_e64 v1, -|v1|, -|v1|2655; GFX10-SDAG-NEXT: v_max_f16_e32 v0, v0, v02656; GFX10-SDAG-NEXT: v_min_f16_e32 v0, v0, v12657; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]2658;2659; GFX10-GISEL-LABEL: v_minimumnum_f16_fneg_fabs_rhs:2660; GFX10-GISEL: ; %bb.0:2661; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2662; GFX10-GISEL-NEXT: v_max_f16_e32 v0, v0, v02663; GFX10-GISEL-NEXT: v_max_f16_e64 v1, -|v1|, -|v1|2664; GFX10-GISEL-NEXT: v_min_f16_e32 v0, v0, v12665; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]2666;2667; GFX11-TRUE16-SDAG-LABEL: v_minimumnum_f16_fneg_fabs_rhs:2668; GFX11-TRUE16-SDAG: ; %bb.0:2669; GFX11-TRUE16-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2670; GFX11-TRUE16-SDAG-NEXT: v_max_f16_e64 v0.h, -|v1.l|, -|v1.l|2671; GFX11-TRUE16-SDAG-NEXT: v_max_f16_e32 v0.l, v0.l, v0.l2672; GFX11-TRUE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)2673; GFX11-TRUE16-SDAG-NEXT: v_min_f16_e32 v0.l, v0.l, v0.h2674; GFX11-TRUE16-SDAG-NEXT: s_setpc_b64 s[30:31]2675;2676; GFX11-TRUE16-GISEL-LABEL: v_minimumnum_f16_fneg_fabs_rhs:2677; GFX11-TRUE16-GISEL: ; %bb.0:2678; GFX11-TRUE16-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2679; GFX11-TRUE16-GISEL-NEXT: v_max_f16_e32 v0.l, v0.l, v0.l2680; GFX11-TRUE16-GISEL-NEXT: v_max_f16_e64 v0.h, -|v1.l|, -|v1.l|2681; GFX11-TRUE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)2682; GFX11-TRUE16-GISEL-NEXT: v_min_f16_e32 v0.l, v0.l, v0.h2683; GFX11-TRUE16-GISEL-NEXT: s_setpc_b64 s[30:31]2684;2685; GFX11-FAKE16-SDAG-LABEL: v_minimumnum_f16_fneg_fabs_rhs:2686; GFX11-FAKE16-SDAG: ; %bb.0:2687; GFX11-FAKE16-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2688; GFX11-FAKE16-SDAG-NEXT: v_max_f16_e64 v1, -|v1|, -|v1|2689; GFX11-FAKE16-SDAG-NEXT: v_max_f16_e32 v0, v0, v02690; GFX11-FAKE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)2691; GFX11-FAKE16-SDAG-NEXT: v_min_f16_e32 v0, v0, v12692; GFX11-FAKE16-SDAG-NEXT: s_setpc_b64 s[30:31]2693;2694; GFX11-FAKE16-GISEL-LABEL: v_minimumnum_f16_fneg_fabs_rhs:2695; GFX11-FAKE16-GISEL: ; %bb.0:2696; GFX11-FAKE16-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2697; GFX11-FAKE16-GISEL-NEXT: v_max_f16_e32 v0, v0, v02698; GFX11-FAKE16-GISEL-NEXT: v_max_f16_e64 v1, -|v1|, -|v1|2699; GFX11-FAKE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)2700; GFX11-FAKE16-GISEL-NEXT: v_min_f16_e32 v0, v0, v12701; GFX11-FAKE16-GISEL-NEXT: s_setpc_b64 s[30:31]2702;2703; GFX12-TRUE16-SDAG-LABEL: v_minimumnum_f16_fneg_fabs_rhs:2704; GFX12-TRUE16-SDAG: ; %bb.0:2705; GFX12-TRUE16-SDAG-NEXT: s_wait_loadcnt_dscnt 0x02706; GFX12-TRUE16-SDAG-NEXT: s_wait_expcnt 0x02707; GFX12-TRUE16-SDAG-NEXT: s_wait_samplecnt 0x02708; GFX12-TRUE16-SDAG-NEXT: s_wait_bvhcnt 0x02709; GFX12-TRUE16-SDAG-NEXT: s_wait_kmcnt 0x02710; GFX12-TRUE16-SDAG-NEXT: v_max_num_f16_e64 v0.h, -|v1.l|, -|v1.l|2711; GFX12-TRUE16-SDAG-NEXT: v_max_num_f16_e32 v0.l, v0.l, v0.l2712; GFX12-TRUE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)2713; GFX12-TRUE16-SDAG-NEXT: v_min_num_f16_e32 v0.l, v0.l, v0.h2714; GFX12-TRUE16-SDAG-NEXT: s_setpc_b64 s[30:31]2715;2716; GFX12-TRUE16-GISEL-LABEL: v_minimumnum_f16_fneg_fabs_rhs:2717; GFX12-TRUE16-GISEL: ; %bb.0:2718; GFX12-TRUE16-GISEL-NEXT: s_wait_loadcnt_dscnt 0x02719; GFX12-TRUE16-GISEL-NEXT: s_wait_expcnt 0x02720; GFX12-TRUE16-GISEL-NEXT: s_wait_samplecnt 0x02721; GFX12-TRUE16-GISEL-NEXT: s_wait_bvhcnt 0x02722; GFX12-TRUE16-GISEL-NEXT: s_wait_kmcnt 0x02723; GFX12-TRUE16-GISEL-NEXT: v_max_num_f16_e32 v0.l, v0.l, v0.l2724; GFX12-TRUE16-GISEL-NEXT: v_max_num_f16_e64 v0.h, -|v1.l|, -|v1.l|2725; GFX12-TRUE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)2726; GFX12-TRUE16-GISEL-NEXT: v_min_num_f16_e32 v0.l, v0.l, v0.h2727; GFX12-TRUE16-GISEL-NEXT: s_setpc_b64 s[30:31]2728;2729; GFX12-FAKE16-SDAG-LABEL: v_minimumnum_f16_fneg_fabs_rhs:2730; GFX12-FAKE16-SDAG: ; %bb.0:2731; GFX12-FAKE16-SDAG-NEXT: s_wait_loadcnt_dscnt 0x02732; GFX12-FAKE16-SDAG-NEXT: s_wait_expcnt 0x02733; GFX12-FAKE16-SDAG-NEXT: s_wait_samplecnt 0x02734; GFX12-FAKE16-SDAG-NEXT: s_wait_bvhcnt 0x02735; GFX12-FAKE16-SDAG-NEXT: s_wait_kmcnt 0x02736; GFX12-FAKE16-SDAG-NEXT: v_max_num_f16_e64 v1, -|v1|, -|v1|2737; GFX12-FAKE16-SDAG-NEXT: v_max_num_f16_e32 v0, v0, v02738; GFX12-FAKE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)2739; GFX12-FAKE16-SDAG-NEXT: v_min_num_f16_e32 v0, v0, v12740; GFX12-FAKE16-SDAG-NEXT: s_setpc_b64 s[30:31]2741;2742; GFX12-FAKE16-GISEL-LABEL: v_minimumnum_f16_fneg_fabs_rhs:2743; GFX12-FAKE16-GISEL: ; %bb.0:2744; GFX12-FAKE16-GISEL-NEXT: s_wait_loadcnt_dscnt 0x02745; GFX12-FAKE16-GISEL-NEXT: s_wait_expcnt 0x02746; GFX12-FAKE16-GISEL-NEXT: s_wait_samplecnt 0x02747; GFX12-FAKE16-GISEL-NEXT: s_wait_bvhcnt 0x02748; GFX12-FAKE16-GISEL-NEXT: s_wait_kmcnt 0x02749; GFX12-FAKE16-GISEL-NEXT: v_max_num_f16_e32 v0, v0, v02750; GFX12-FAKE16-GISEL-NEXT: v_max_num_f16_e64 v1, -|v1|, -|v1|2751; GFX12-FAKE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)2752; GFX12-FAKE16-GISEL-NEXT: v_min_num_f16_e32 v0, v0, v12753; GFX12-FAKE16-GISEL-NEXT: s_setpc_b64 s[30:31]2754 %fabs.y = call half @llvm.fabs.f16(half %y)2755 %fneg.fabs.y = fneg half %fabs.y2756 %result = call half @llvm.minimumnum.f16(half %x, half %fneg.fabs.y)2757 ret half %result2758}2759 2760define half @v_minimumnum_f16_fabs(half %x, half %y) {2761; GFX7-SDAG-LABEL: v_minimumnum_f16_fabs:2762; GFX7-SDAG: ; %bb.0:2763; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2764; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v02765; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v1, v12766; GFX7-SDAG-NEXT: v_cvt_f32_f16_e64 v0, |v0|2767; GFX7-SDAG-NEXT: v_cvt_f32_f16_e64 v1, |v1|2768; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v12769; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]2770;2771; GFX7-GISEL-LABEL: v_minimumnum_f16_fabs:2772; GFX7-GISEL: ; %bb.0:2773; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2774; GFX7-GISEL-NEXT: v_cvt_f32_f16_e64 v0, |v0|2775; GFX7-GISEL-NEXT: v_cvt_f32_f16_e64 v1, |v1|2776; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v12777; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v0, v02778; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]2779;2780; GFX8-SDAG-LABEL: v_minimumnum_f16_fabs:2781; GFX8-SDAG: ; %bb.0:2782; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2783; GFX8-SDAG-NEXT: v_max_f16_e64 v1, |v1|, |v1|2784; GFX8-SDAG-NEXT: v_max_f16_e64 v0, |v0|, |v0|2785; GFX8-SDAG-NEXT: v_min_f16_e32 v0, v0, v12786; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]2787;2788; GFX8-GISEL-LABEL: v_minimumnum_f16_fabs:2789; GFX8-GISEL: ; %bb.0:2790; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2791; GFX8-GISEL-NEXT: v_max_f16_e64 v0, |v0|, |v0|2792; GFX8-GISEL-NEXT: v_max_f16_e64 v1, |v1|, |v1|2793; GFX8-GISEL-NEXT: v_min_f16_e32 v0, v0, v12794; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]2795;2796; GFX9-SDAG-LABEL: v_minimumnum_f16_fabs:2797; GFX9-SDAG: ; %bb.0:2798; GFX9-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2799; GFX9-SDAG-NEXT: v_max_f16_e64 v1, |v1|, |v1|2800; GFX9-SDAG-NEXT: v_max_f16_e64 v0, |v0|, |v0|2801; GFX9-SDAG-NEXT: v_min_f16_e32 v0, v0, v12802; GFX9-SDAG-NEXT: s_setpc_b64 s[30:31]2803;2804; GFX9-GISEL-LABEL: v_minimumnum_f16_fabs:2805; GFX9-GISEL: ; %bb.0:2806; GFX9-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2807; GFX9-GISEL-NEXT: v_max_f16_e64 v0, |v0|, |v0|2808; GFX9-GISEL-NEXT: v_max_f16_e64 v1, |v1|, |v1|2809; GFX9-GISEL-NEXT: v_min_f16_e32 v0, v0, v12810; GFX9-GISEL-NEXT: s_setpc_b64 s[30:31]2811;2812; GFX10-SDAG-LABEL: v_minimumnum_f16_fabs:2813; GFX10-SDAG: ; %bb.0:2814; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2815; GFX10-SDAG-NEXT: v_max_f16_e64 v1, |v1|, |v1|2816; GFX10-SDAG-NEXT: v_max_f16_e64 v0, |v0|, |v0|2817; GFX10-SDAG-NEXT: v_min_f16_e32 v0, v0, v12818; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]2819;2820; GFX10-GISEL-LABEL: v_minimumnum_f16_fabs:2821; GFX10-GISEL: ; %bb.0:2822; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2823; GFX10-GISEL-NEXT: v_max_f16_e64 v0, |v0|, |v0|2824; GFX10-GISEL-NEXT: v_max_f16_e64 v1, |v1|, |v1|2825; GFX10-GISEL-NEXT: v_min_f16_e32 v0, v0, v12826; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]2827;2828; GFX11-TRUE16-SDAG-LABEL: v_minimumnum_f16_fabs:2829; GFX11-TRUE16-SDAG: ; %bb.0:2830; GFX11-TRUE16-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2831; GFX11-TRUE16-SDAG-NEXT: v_max_f16_e64 v0.h, |v1.l|, |v1.l|2832; GFX11-TRUE16-SDAG-NEXT: v_max_f16_e64 v0.l, |v0.l|, |v0.l|2833; GFX11-TRUE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)2834; GFX11-TRUE16-SDAG-NEXT: v_min_f16_e32 v0.l, v0.l, v0.h2835; GFX11-TRUE16-SDAG-NEXT: s_setpc_b64 s[30:31]2836;2837; GFX11-TRUE16-GISEL-LABEL: v_minimumnum_f16_fabs:2838; GFX11-TRUE16-GISEL: ; %bb.0:2839; GFX11-TRUE16-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2840; GFX11-TRUE16-GISEL-NEXT: v_max_f16_e64 v0.l, |v0.l|, |v0.l|2841; GFX11-TRUE16-GISEL-NEXT: v_max_f16_e64 v0.h, |v1.l|, |v1.l|2842; GFX11-TRUE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)2843; GFX11-TRUE16-GISEL-NEXT: v_min_f16_e32 v0.l, v0.l, v0.h2844; GFX11-TRUE16-GISEL-NEXT: s_setpc_b64 s[30:31]2845;2846; GFX11-FAKE16-SDAG-LABEL: v_minimumnum_f16_fabs:2847; GFX11-FAKE16-SDAG: ; %bb.0:2848; GFX11-FAKE16-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2849; GFX11-FAKE16-SDAG-NEXT: v_max_f16_e64 v1, |v1|, |v1|2850; GFX11-FAKE16-SDAG-NEXT: v_max_f16_e64 v0, |v0|, |v0|2851; GFX11-FAKE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)2852; GFX11-FAKE16-SDAG-NEXT: v_min_f16_e32 v0, v0, v12853; GFX11-FAKE16-SDAG-NEXT: s_setpc_b64 s[30:31]2854;2855; GFX11-FAKE16-GISEL-LABEL: v_minimumnum_f16_fabs:2856; GFX11-FAKE16-GISEL: ; %bb.0:2857; GFX11-FAKE16-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2858; GFX11-FAKE16-GISEL-NEXT: v_max_f16_e64 v0, |v0|, |v0|2859; GFX11-FAKE16-GISEL-NEXT: v_max_f16_e64 v1, |v1|, |v1|2860; GFX11-FAKE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)2861; GFX11-FAKE16-GISEL-NEXT: v_min_f16_e32 v0, v0, v12862; GFX11-FAKE16-GISEL-NEXT: s_setpc_b64 s[30:31]2863;2864; GFX12-TRUE16-SDAG-LABEL: v_minimumnum_f16_fabs:2865; GFX12-TRUE16-SDAG: ; %bb.0:2866; GFX12-TRUE16-SDAG-NEXT: s_wait_loadcnt_dscnt 0x02867; GFX12-TRUE16-SDAG-NEXT: s_wait_expcnt 0x02868; GFX12-TRUE16-SDAG-NEXT: s_wait_samplecnt 0x02869; GFX12-TRUE16-SDAG-NEXT: s_wait_bvhcnt 0x02870; GFX12-TRUE16-SDAG-NEXT: s_wait_kmcnt 0x02871; GFX12-TRUE16-SDAG-NEXT: v_max_num_f16_e64 v0.h, |v1.l|, |v1.l|2872; GFX12-TRUE16-SDAG-NEXT: v_max_num_f16_e64 v0.l, |v0.l|, |v0.l|2873; GFX12-TRUE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)2874; GFX12-TRUE16-SDAG-NEXT: v_min_num_f16_e32 v0.l, v0.l, v0.h2875; GFX12-TRUE16-SDAG-NEXT: s_setpc_b64 s[30:31]2876;2877; GFX12-TRUE16-GISEL-LABEL: v_minimumnum_f16_fabs:2878; GFX12-TRUE16-GISEL: ; %bb.0:2879; GFX12-TRUE16-GISEL-NEXT: s_wait_loadcnt_dscnt 0x02880; GFX12-TRUE16-GISEL-NEXT: s_wait_expcnt 0x02881; GFX12-TRUE16-GISEL-NEXT: s_wait_samplecnt 0x02882; GFX12-TRUE16-GISEL-NEXT: s_wait_bvhcnt 0x02883; GFX12-TRUE16-GISEL-NEXT: s_wait_kmcnt 0x02884; GFX12-TRUE16-GISEL-NEXT: v_max_num_f16_e64 v0.l, |v0.l|, |v0.l|2885; GFX12-TRUE16-GISEL-NEXT: v_max_num_f16_e64 v0.h, |v1.l|, |v1.l|2886; GFX12-TRUE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)2887; GFX12-TRUE16-GISEL-NEXT: v_min_num_f16_e32 v0.l, v0.l, v0.h2888; GFX12-TRUE16-GISEL-NEXT: s_setpc_b64 s[30:31]2889;2890; GFX12-FAKE16-SDAG-LABEL: v_minimumnum_f16_fabs:2891; GFX12-FAKE16-SDAG: ; %bb.0:2892; GFX12-FAKE16-SDAG-NEXT: s_wait_loadcnt_dscnt 0x02893; GFX12-FAKE16-SDAG-NEXT: s_wait_expcnt 0x02894; GFX12-FAKE16-SDAG-NEXT: s_wait_samplecnt 0x02895; GFX12-FAKE16-SDAG-NEXT: s_wait_bvhcnt 0x02896; GFX12-FAKE16-SDAG-NEXT: s_wait_kmcnt 0x02897; GFX12-FAKE16-SDAG-NEXT: v_max_num_f16_e64 v1, |v1|, |v1|2898; GFX12-FAKE16-SDAG-NEXT: v_max_num_f16_e64 v0, |v0|, |v0|2899; GFX12-FAKE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)2900; GFX12-FAKE16-SDAG-NEXT: v_min_num_f16_e32 v0, v0, v12901; GFX12-FAKE16-SDAG-NEXT: s_setpc_b64 s[30:31]2902;2903; GFX12-FAKE16-GISEL-LABEL: v_minimumnum_f16_fabs:2904; GFX12-FAKE16-GISEL: ; %bb.0:2905; GFX12-FAKE16-GISEL-NEXT: s_wait_loadcnt_dscnt 0x02906; GFX12-FAKE16-GISEL-NEXT: s_wait_expcnt 0x02907; GFX12-FAKE16-GISEL-NEXT: s_wait_samplecnt 0x02908; GFX12-FAKE16-GISEL-NEXT: s_wait_bvhcnt 0x02909; GFX12-FAKE16-GISEL-NEXT: s_wait_kmcnt 0x02910; GFX12-FAKE16-GISEL-NEXT: v_max_num_f16_e64 v0, |v0|, |v0|2911; GFX12-FAKE16-GISEL-NEXT: v_max_num_f16_e64 v1, |v1|, |v1|2912; GFX12-FAKE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)2913; GFX12-FAKE16-GISEL-NEXT: v_min_num_f16_e32 v0, v0, v12914; GFX12-FAKE16-GISEL-NEXT: s_setpc_b64 s[30:31]2915 %fabs.x = call half @llvm.fabs.f16(half %x)2916 %fabs.y = call half @llvm.fabs.f16(half %y)2917 %result = call half @llvm.minimumnum.f16(half %fabs.x, half %fabs.y)2918 ret half %result2919}2920 2921define half @v_minimumnum_f16_fneg(half %x, half %y) {2922; GFX7-SDAG-LABEL: v_minimumnum_f16_fneg:2923; GFX7-SDAG: ; %bb.0:2924; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2925; GFX7-SDAG-NEXT: v_cvt_f16_f32_e64 v0, -v02926; GFX7-SDAG-NEXT: v_cvt_f16_f32_e64 v1, -v12927; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v02928; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v1, v12929; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v12930; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]2931;2932; GFX7-GISEL-LABEL: v_minimumnum_f16_fneg:2933; GFX7-GISEL: ; %bb.0:2934; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2935; GFX7-GISEL-NEXT: v_cvt_f32_f16_e64 v0, -v02936; GFX7-GISEL-NEXT: v_cvt_f32_f16_e64 v1, -v12937; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v12938; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v0, v02939; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]2940;2941; GFX8-SDAG-LABEL: v_minimumnum_f16_fneg:2942; GFX8-SDAG: ; %bb.0:2943; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2944; GFX8-SDAG-NEXT: v_max_f16_e64 v1, -v1, -v12945; GFX8-SDAG-NEXT: v_max_f16_e64 v0, -v0, -v02946; GFX8-SDAG-NEXT: v_min_f16_e32 v0, v0, v12947; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]2948;2949; GFX8-GISEL-LABEL: v_minimumnum_f16_fneg:2950; GFX8-GISEL: ; %bb.0:2951; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2952; GFX8-GISEL-NEXT: v_max_f16_e64 v0, -v0, -v02953; GFX8-GISEL-NEXT: v_max_f16_e64 v1, -v1, -v12954; GFX8-GISEL-NEXT: v_min_f16_e32 v0, v0, v12955; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]2956;2957; GFX9-SDAG-LABEL: v_minimumnum_f16_fneg:2958; GFX9-SDAG: ; %bb.0:2959; GFX9-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2960; GFX9-SDAG-NEXT: v_max_f16_e64 v1, -v1, -v12961; GFX9-SDAG-NEXT: v_max_f16_e64 v0, -v0, -v02962; GFX9-SDAG-NEXT: v_min_f16_e32 v0, v0, v12963; GFX9-SDAG-NEXT: s_setpc_b64 s[30:31]2964;2965; GFX9-GISEL-LABEL: v_minimumnum_f16_fneg:2966; GFX9-GISEL: ; %bb.0:2967; GFX9-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2968; GFX9-GISEL-NEXT: v_max_f16_e64 v0, -v0, -v02969; GFX9-GISEL-NEXT: v_max_f16_e64 v1, -v1, -v12970; GFX9-GISEL-NEXT: v_min_f16_e32 v0, v0, v12971; GFX9-GISEL-NEXT: s_setpc_b64 s[30:31]2972;2973; GFX10-SDAG-LABEL: v_minimumnum_f16_fneg:2974; GFX10-SDAG: ; %bb.0:2975; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2976; GFX10-SDAG-NEXT: v_max_f16_e64 v1, -v1, -v12977; GFX10-SDAG-NEXT: v_max_f16_e64 v0, -v0, -v02978; GFX10-SDAG-NEXT: v_min_f16_e32 v0, v0, v12979; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]2980;2981; GFX10-GISEL-LABEL: v_minimumnum_f16_fneg:2982; GFX10-GISEL: ; %bb.0:2983; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2984; GFX10-GISEL-NEXT: v_max_f16_e64 v0, -v0, -v02985; GFX10-GISEL-NEXT: v_max_f16_e64 v1, -v1, -v12986; GFX10-GISEL-NEXT: v_min_f16_e32 v0, v0, v12987; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]2988;2989; GFX11-TRUE16-SDAG-LABEL: v_minimumnum_f16_fneg:2990; GFX11-TRUE16-SDAG: ; %bb.0:2991; GFX11-TRUE16-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2992; GFX11-TRUE16-SDAG-NEXT: v_max_f16_e64 v0.h, -v1.l, -v1.l2993; GFX11-TRUE16-SDAG-NEXT: v_max_f16_e64 v0.l, -v0.l, -v0.l2994; GFX11-TRUE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)2995; GFX11-TRUE16-SDAG-NEXT: v_min_f16_e32 v0.l, v0.l, v0.h2996; GFX11-TRUE16-SDAG-NEXT: s_setpc_b64 s[30:31]2997;2998; GFX11-TRUE16-GISEL-LABEL: v_minimumnum_f16_fneg:2999; GFX11-TRUE16-GISEL: ; %bb.0:3000; GFX11-TRUE16-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3001; GFX11-TRUE16-GISEL-NEXT: v_max_f16_e64 v0.l, -v0.l, -v0.l3002; GFX11-TRUE16-GISEL-NEXT: v_max_f16_e64 v0.h, -v1.l, -v1.l3003; GFX11-TRUE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)3004; GFX11-TRUE16-GISEL-NEXT: v_min_f16_e32 v0.l, v0.l, v0.h3005; GFX11-TRUE16-GISEL-NEXT: s_setpc_b64 s[30:31]3006;3007; GFX11-FAKE16-SDAG-LABEL: v_minimumnum_f16_fneg:3008; GFX11-FAKE16-SDAG: ; %bb.0:3009; GFX11-FAKE16-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3010; GFX11-FAKE16-SDAG-NEXT: v_max_f16_e64 v1, -v1, -v13011; GFX11-FAKE16-SDAG-NEXT: v_max_f16_e64 v0, -v0, -v03012; GFX11-FAKE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)3013; GFX11-FAKE16-SDAG-NEXT: v_min_f16_e32 v0, v0, v13014; GFX11-FAKE16-SDAG-NEXT: s_setpc_b64 s[30:31]3015;3016; GFX11-FAKE16-GISEL-LABEL: v_minimumnum_f16_fneg:3017; GFX11-FAKE16-GISEL: ; %bb.0:3018; GFX11-FAKE16-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3019; GFX11-FAKE16-GISEL-NEXT: v_max_f16_e64 v0, -v0, -v03020; GFX11-FAKE16-GISEL-NEXT: v_max_f16_e64 v1, -v1, -v13021; GFX11-FAKE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)3022; GFX11-FAKE16-GISEL-NEXT: v_min_f16_e32 v0, v0, v13023; GFX11-FAKE16-GISEL-NEXT: s_setpc_b64 s[30:31]3024;3025; GFX12-TRUE16-SDAG-LABEL: v_minimumnum_f16_fneg:3026; GFX12-TRUE16-SDAG: ; %bb.0:3027; GFX12-TRUE16-SDAG-NEXT: s_wait_loadcnt_dscnt 0x03028; GFX12-TRUE16-SDAG-NEXT: s_wait_expcnt 0x03029; GFX12-TRUE16-SDAG-NEXT: s_wait_samplecnt 0x03030; GFX12-TRUE16-SDAG-NEXT: s_wait_bvhcnt 0x03031; GFX12-TRUE16-SDAG-NEXT: s_wait_kmcnt 0x03032; GFX12-TRUE16-SDAG-NEXT: v_max_num_f16_e64 v0.h, -v1.l, -v1.l3033; GFX12-TRUE16-SDAG-NEXT: v_max_num_f16_e64 v0.l, -v0.l, -v0.l3034; GFX12-TRUE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)3035; GFX12-TRUE16-SDAG-NEXT: v_min_num_f16_e32 v0.l, v0.l, v0.h3036; GFX12-TRUE16-SDAG-NEXT: s_setpc_b64 s[30:31]3037;3038; GFX12-TRUE16-GISEL-LABEL: v_minimumnum_f16_fneg:3039; GFX12-TRUE16-GISEL: ; %bb.0:3040; GFX12-TRUE16-GISEL-NEXT: s_wait_loadcnt_dscnt 0x03041; GFX12-TRUE16-GISEL-NEXT: s_wait_expcnt 0x03042; GFX12-TRUE16-GISEL-NEXT: s_wait_samplecnt 0x03043; GFX12-TRUE16-GISEL-NEXT: s_wait_bvhcnt 0x03044; GFX12-TRUE16-GISEL-NEXT: s_wait_kmcnt 0x03045; GFX12-TRUE16-GISEL-NEXT: v_max_num_f16_e64 v0.l, -v0.l, -v0.l3046; GFX12-TRUE16-GISEL-NEXT: v_max_num_f16_e64 v0.h, -v1.l, -v1.l3047; GFX12-TRUE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)3048; GFX12-TRUE16-GISEL-NEXT: v_min_num_f16_e32 v0.l, v0.l, v0.h3049; GFX12-TRUE16-GISEL-NEXT: s_setpc_b64 s[30:31]3050;3051; GFX12-FAKE16-SDAG-LABEL: v_minimumnum_f16_fneg:3052; GFX12-FAKE16-SDAG: ; %bb.0:3053; GFX12-FAKE16-SDAG-NEXT: s_wait_loadcnt_dscnt 0x03054; GFX12-FAKE16-SDAG-NEXT: s_wait_expcnt 0x03055; GFX12-FAKE16-SDAG-NEXT: s_wait_samplecnt 0x03056; GFX12-FAKE16-SDAG-NEXT: s_wait_bvhcnt 0x03057; GFX12-FAKE16-SDAG-NEXT: s_wait_kmcnt 0x03058; GFX12-FAKE16-SDAG-NEXT: v_max_num_f16_e64 v1, -v1, -v13059; GFX12-FAKE16-SDAG-NEXT: v_max_num_f16_e64 v0, -v0, -v03060; GFX12-FAKE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)3061; GFX12-FAKE16-SDAG-NEXT: v_min_num_f16_e32 v0, v0, v13062; GFX12-FAKE16-SDAG-NEXT: s_setpc_b64 s[30:31]3063;3064; GFX12-FAKE16-GISEL-LABEL: v_minimumnum_f16_fneg:3065; GFX12-FAKE16-GISEL: ; %bb.0:3066; GFX12-FAKE16-GISEL-NEXT: s_wait_loadcnt_dscnt 0x03067; GFX12-FAKE16-GISEL-NEXT: s_wait_expcnt 0x03068; GFX12-FAKE16-GISEL-NEXT: s_wait_samplecnt 0x03069; GFX12-FAKE16-GISEL-NEXT: s_wait_bvhcnt 0x03070; GFX12-FAKE16-GISEL-NEXT: s_wait_kmcnt 0x03071; GFX12-FAKE16-GISEL-NEXT: v_max_num_f16_e64 v0, -v0, -v03072; GFX12-FAKE16-GISEL-NEXT: v_max_num_f16_e64 v1, -v1, -v13073; GFX12-FAKE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)3074; GFX12-FAKE16-GISEL-NEXT: v_min_num_f16_e32 v0, v0, v13075; GFX12-FAKE16-GISEL-NEXT: s_setpc_b64 s[30:31]3076 %fneg.x = fneg half %x3077 %fneg.y = fneg half %y3078 %result = call half @llvm.minimumnum.f16(half %fneg.x, half %fneg.y)3079 ret half %result3080}3081 3082define double @v_minimumnum_f64_fneg(double %x, double %y) {3083; GFX7-SDAG-LABEL: v_minimumnum_f64_fneg:3084; GFX7-SDAG: ; %bb.0:3085; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3086; GFX7-SDAG-NEXT: v_max_f64 v[2:3], -v[2:3], -v[2:3]3087; GFX7-SDAG-NEXT: v_max_f64 v[0:1], -v[0:1], -v[0:1]3088; GFX7-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]3089; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]3090;3091; GFX7-GISEL-LABEL: v_minimumnum_f64_fneg:3092; GFX7-GISEL: ; %bb.0:3093; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3094; GFX7-GISEL-NEXT: v_max_f64 v[0:1], -v[0:1], -v[0:1]3095; GFX7-GISEL-NEXT: v_max_f64 v[2:3], -v[2:3], -v[2:3]3096; GFX7-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]3097; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]3098;3099; GFX8-SDAG-LABEL: v_minimumnum_f64_fneg:3100; GFX8-SDAG: ; %bb.0:3101; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3102; GFX8-SDAG-NEXT: v_max_f64 v[2:3], -v[2:3], -v[2:3]3103; GFX8-SDAG-NEXT: v_max_f64 v[0:1], -v[0:1], -v[0:1]3104; GFX8-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]3105; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]3106;3107; GFX8-GISEL-LABEL: v_minimumnum_f64_fneg:3108; GFX8-GISEL: ; %bb.0:3109; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3110; GFX8-GISEL-NEXT: v_max_f64 v[0:1], -v[0:1], -v[0:1]3111; GFX8-GISEL-NEXT: v_max_f64 v[2:3], -v[2:3], -v[2:3]3112; GFX8-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]3113; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]3114;3115; GFX9-SDAG-LABEL: v_minimumnum_f64_fneg:3116; GFX9-SDAG: ; %bb.0:3117; GFX9-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3118; GFX9-SDAG-NEXT: v_max_f64 v[2:3], -v[2:3], -v[2:3]3119; GFX9-SDAG-NEXT: v_max_f64 v[0:1], -v[0:1], -v[0:1]3120; GFX9-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]3121; GFX9-SDAG-NEXT: s_setpc_b64 s[30:31]3122;3123; GFX9-GISEL-LABEL: v_minimumnum_f64_fneg:3124; GFX9-GISEL: ; %bb.0:3125; GFX9-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3126; GFX9-GISEL-NEXT: v_max_f64 v[0:1], -v[0:1], -v[0:1]3127; GFX9-GISEL-NEXT: v_max_f64 v[2:3], -v[2:3], -v[2:3]3128; GFX9-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]3129; GFX9-GISEL-NEXT: s_setpc_b64 s[30:31]3130;3131; GFX10-SDAG-LABEL: v_minimumnum_f64_fneg:3132; GFX10-SDAG: ; %bb.0:3133; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3134; GFX10-SDAG-NEXT: v_max_f64 v[2:3], -v[2:3], -v[2:3]3135; GFX10-SDAG-NEXT: v_max_f64 v[0:1], -v[0:1], -v[0:1]3136; GFX10-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]3137; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]3138;3139; GFX10-GISEL-LABEL: v_minimumnum_f64_fneg:3140; GFX10-GISEL: ; %bb.0:3141; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3142; GFX10-GISEL-NEXT: v_max_f64 v[0:1], -v[0:1], -v[0:1]3143; GFX10-GISEL-NEXT: v_max_f64 v[2:3], -v[2:3], -v[2:3]3144; GFX10-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]3145; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]3146;3147; GFX11-SDAG-LABEL: v_minimumnum_f64_fneg:3148; GFX11-SDAG: ; %bb.0:3149; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3150; GFX11-SDAG-NEXT: v_max_f64 v[2:3], -v[2:3], -v[2:3]3151; GFX11-SDAG-NEXT: v_max_f64 v[0:1], -v[0:1], -v[0:1]3152; GFX11-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)3153; GFX11-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]3154; GFX11-SDAG-NEXT: s_setpc_b64 s[30:31]3155;3156; GFX11-GISEL-LABEL: v_minimumnum_f64_fneg:3157; GFX11-GISEL: ; %bb.0:3158; GFX11-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3159; GFX11-GISEL-NEXT: v_max_f64 v[0:1], -v[0:1], -v[0:1]3160; GFX11-GISEL-NEXT: v_max_f64 v[2:3], -v[2:3], -v[2:3]3161; GFX11-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)3162; GFX11-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]3163; GFX11-GISEL-NEXT: s_setpc_b64 s[30:31]3164;3165; GFX12-SDAG-LABEL: v_minimumnum_f64_fneg:3166; GFX12-SDAG: ; %bb.0:3167; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x03168; GFX12-SDAG-NEXT: s_wait_expcnt 0x03169; GFX12-SDAG-NEXT: s_wait_samplecnt 0x03170; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x03171; GFX12-SDAG-NEXT: s_wait_kmcnt 0x03172; GFX12-SDAG-NEXT: v_max_num_f64_e64 v[2:3], -v[2:3], -v[2:3]3173; GFX12-SDAG-NEXT: v_max_num_f64_e64 v[0:1], -v[0:1], -v[0:1]3174; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)3175; GFX12-SDAG-NEXT: v_min_num_f64_e32 v[0:1], v[0:1], v[2:3]3176; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]3177;3178; GFX12-GISEL-LABEL: v_minimumnum_f64_fneg:3179; GFX12-GISEL: ; %bb.0:3180; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x03181; GFX12-GISEL-NEXT: s_wait_expcnt 0x03182; GFX12-GISEL-NEXT: s_wait_samplecnt 0x03183; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x03184; GFX12-GISEL-NEXT: s_wait_kmcnt 0x03185; GFX12-GISEL-NEXT: v_max_num_f64_e64 v[0:1], -v[0:1], -v[0:1]3186; GFX12-GISEL-NEXT: v_max_num_f64_e64 v[2:3], -v[2:3], -v[2:3]3187; GFX12-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)3188; GFX12-GISEL-NEXT: v_min_num_f64_e32 v[0:1], v[0:1], v[2:3]3189; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]3190 %fneg.x = fneg double %x3191 %fneg.y = fneg double %y3192 %result = call double @llvm.minimumnum.f64(double %fneg.x, double %fneg.y)3193 ret double %result3194}3195 3196define <2 x half> @v_minimumnum_v2f16(<2 x half> %x, <2 x half> %y) {3197; GFX7-SDAG-LABEL: v_minimumnum_v2f16:3198; GFX7-SDAG: ; %bb.0:3199; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3200; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v1, v13201; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v03202; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v2, v23203; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v3, v33204; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v1, v13205; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v03206; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v2, v23207; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v3, v33208; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v23209; GFX7-SDAG-NEXT: v_min_f32_e32 v1, v1, v33210; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]3211;3212; GFX7-GISEL-LABEL: v_minimumnum_v2f16:3213; GFX7-GISEL: ; %bb.0:3214; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3215; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v0, v03216; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v2, v23217; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v1, v13218; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v3, v33219; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v23220; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v0, v03221; GFX7-GISEL-NEXT: v_min_f32_e32 v1, v1, v33222; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v1, v13223; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]3224;3225; GFX8-SDAG-LABEL: v_minimumnum_v2f16:3226; GFX8-SDAG: ; %bb.0:3227; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3228; GFX8-SDAG-NEXT: v_max_f16_sdwa v2, v1, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_13229; GFX8-SDAG-NEXT: v_max_f16_sdwa v3, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_13230; GFX8-SDAG-NEXT: v_max_f16_e32 v1, v1, v13231; GFX8-SDAG-NEXT: v_max_f16_e32 v0, v0, v03232; GFX8-SDAG-NEXT: v_min_f16_sdwa v2, v3, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD3233; GFX8-SDAG-NEXT: v_min_f16_e32 v0, v0, v13234; GFX8-SDAG-NEXT: v_or_b32_e32 v0, v0, v23235; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]3236;3237; GFX8-GISEL-LABEL: v_minimumnum_v2f16:3238; GFX8-GISEL: ; %bb.0:3239; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3240; GFX8-GISEL-NEXT: v_max_f16_e32 v2, v0, v03241; GFX8-GISEL-NEXT: v_max_f16_e32 v3, v1, v13242; GFX8-GISEL-NEXT: v_max_f16_sdwa v0, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_13243; GFX8-GISEL-NEXT: v_max_f16_sdwa v1, v1, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_13244; GFX8-GISEL-NEXT: v_min_f16_e32 v2, v2, v33245; GFX8-GISEL-NEXT: v_min_f16_sdwa v0, v0, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD3246; GFX8-GISEL-NEXT: v_or_b32_e32 v0, v2, v03247; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]3248;3249; GFX900-SDAG-LABEL: v_minimumnum_v2f16:3250; GFX900-SDAG: ; %bb.0:3251; GFX900-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3252; GFX900-SDAG-NEXT: v_pk_max_f16 v1, v1, v13253; GFX900-SDAG-NEXT: v_pk_max_f16 v0, v0, v03254; GFX900-SDAG-NEXT: v_pk_min_f16 v0, v0, v13255; GFX900-SDAG-NEXT: s_setpc_b64 s[30:31]3256;3257; GFX900-GISEL-LABEL: v_minimumnum_v2f16:3258; GFX900-GISEL: ; %bb.0:3259; GFX900-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3260; GFX900-GISEL-NEXT: v_pk_max_f16 v0, v0, v03261; GFX900-GISEL-NEXT: v_pk_max_f16 v1, v1, v13262; GFX900-GISEL-NEXT: v_pk_min_f16 v0, v0, v13263; GFX900-GISEL-NEXT: s_setpc_b64 s[30:31]3264;3265; GFX950-SDAG-LABEL: v_minimumnum_v2f16:3266; GFX950-SDAG: ; %bb.0:3267; GFX950-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3268; GFX950-SDAG-NEXT: v_pk_max_f16 v1, v1, v13269; GFX950-SDAG-NEXT: v_pk_max_f16 v0, v0, v03270; GFX950-SDAG-NEXT: s_nop 03271; GFX950-SDAG-NEXT: v_pk_min_f16 v0, v0, v13272; GFX950-SDAG-NEXT: s_setpc_b64 s[30:31]3273;3274; GFX950-GISEL-LABEL: v_minimumnum_v2f16:3275; GFX950-GISEL: ; %bb.0:3276; GFX950-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3277; GFX950-GISEL-NEXT: v_pk_max_f16 v0, v0, v03278; GFX950-GISEL-NEXT: v_pk_max_f16 v1, v1, v13279; GFX950-GISEL-NEXT: s_nop 03280; GFX950-GISEL-NEXT: v_pk_min_f16 v0, v0, v13281; GFX950-GISEL-NEXT: s_setpc_b64 s[30:31]3282;3283; GFX10-SDAG-LABEL: v_minimumnum_v2f16:3284; GFX10-SDAG: ; %bb.0:3285; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3286; GFX10-SDAG-NEXT: v_pk_max_f16 v1, v1, v13287; GFX10-SDAG-NEXT: v_pk_max_f16 v0, v0, v03288; GFX10-SDAG-NEXT: v_pk_min_f16 v0, v0, v13289; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]3290;3291; GFX10-GISEL-LABEL: v_minimumnum_v2f16:3292; GFX10-GISEL: ; %bb.0:3293; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3294; GFX10-GISEL-NEXT: v_pk_max_f16 v0, v0, v03295; GFX10-GISEL-NEXT: v_pk_max_f16 v1, v1, v13296; GFX10-GISEL-NEXT: v_pk_min_f16 v0, v0, v13297; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]3298;3299; GFX11-SDAG-LABEL: v_minimumnum_v2f16:3300; GFX11-SDAG: ; %bb.0:3301; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3302; GFX11-SDAG-NEXT: v_pk_max_f16 v1, v1, v13303; GFX11-SDAG-NEXT: v_pk_max_f16 v0, v0, v03304; GFX11-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)3305; GFX11-SDAG-NEXT: v_pk_min_f16 v0, v0, v13306; GFX11-SDAG-NEXT: s_setpc_b64 s[30:31]3307;3308; GFX11-GISEL-LABEL: v_minimumnum_v2f16:3309; GFX11-GISEL: ; %bb.0:3310; GFX11-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3311; GFX11-GISEL-NEXT: v_pk_max_f16 v0, v0, v03312; GFX11-GISEL-NEXT: v_pk_max_f16 v1, v1, v13313; GFX11-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)3314; GFX11-GISEL-NEXT: v_pk_min_f16 v0, v0, v13315; GFX11-GISEL-NEXT: s_setpc_b64 s[30:31]3316;3317; GFX12-SDAG-LABEL: v_minimumnum_v2f16:3318; GFX12-SDAG: ; %bb.0:3319; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x03320; GFX12-SDAG-NEXT: s_wait_expcnt 0x03321; GFX12-SDAG-NEXT: s_wait_samplecnt 0x03322; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x03323; GFX12-SDAG-NEXT: s_wait_kmcnt 0x03324; GFX12-SDAG-NEXT: v_pk_max_num_f16 v1, v1, v13325; GFX12-SDAG-NEXT: v_pk_max_num_f16 v0, v0, v03326; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)3327; GFX12-SDAG-NEXT: v_pk_min_num_f16 v0, v0, v13328; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]3329;3330; GFX12-GISEL-LABEL: v_minimumnum_v2f16:3331; GFX12-GISEL: ; %bb.0:3332; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x03333; GFX12-GISEL-NEXT: s_wait_expcnt 0x03334; GFX12-GISEL-NEXT: s_wait_samplecnt 0x03335; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x03336; GFX12-GISEL-NEXT: s_wait_kmcnt 0x03337; GFX12-GISEL-NEXT: v_pk_max_num_f16 v0, v0, v03338; GFX12-GISEL-NEXT: v_pk_max_num_f16 v1, v1, v13339; GFX12-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)3340; GFX12-GISEL-NEXT: v_pk_min_num_f16 v0, v0, v13341; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]3342 %result = call <2 x half> @llvm.minimumnum.v2f16(<2 x half> %x, <2 x half> %y)3343 ret <2 x half> %result3344}3345 3346define <2 x half> @v_minimumnum_v2f16_nnan(<2 x half> %x, <2 x half> %y) {3347; GFX7-SDAG-LABEL: v_minimumnum_v2f16_nnan:3348; GFX7-SDAG: ; %bb.0:3349; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3350; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v3, v33351; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v2, v23352; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v03353; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v1, v13354; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v3, v33355; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v2, v23356; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v03357; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v1, v13358; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v23359; GFX7-SDAG-NEXT: v_min_f32_e32 v1, v1, v33360; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]3361;3362; GFX7-GISEL-LABEL: v_minimumnum_v2f16_nnan:3363; GFX7-GISEL: ; %bb.0:3364; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3365; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v0, v03366; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v2, v23367; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v1, v13368; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v3, v33369; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v23370; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v0, v03371; GFX7-GISEL-NEXT: v_min_f32_e32 v1, v1, v33372; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v1, v13373; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]3374;3375; GFX8-SDAG-LABEL: v_minimumnum_v2f16_nnan:3376; GFX8-SDAG: ; %bb.0:3377; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3378; GFX8-SDAG-NEXT: v_min_f16_sdwa v2, v0, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_13379; GFX8-SDAG-NEXT: v_min_f16_e32 v0, v0, v13380; GFX8-SDAG-NEXT: v_or_b32_e32 v0, v0, v23381; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]3382;3383; GFX8-GISEL-LABEL: v_minimumnum_v2f16_nnan:3384; GFX8-GISEL: ; %bb.0:3385; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3386; GFX8-GISEL-NEXT: v_min_f16_e32 v2, v0, v13387; GFX8-GISEL-NEXT: v_min_f16_sdwa v0, v0, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_13388; GFX8-GISEL-NEXT: v_or_b32_e32 v0, v2, v03389; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]3390;3391; GFX9-LABEL: v_minimumnum_v2f16_nnan:3392; GFX9: ; %bb.0:3393; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3394; GFX9-NEXT: v_pk_min_f16 v0, v0, v13395; GFX9-NEXT: s_setpc_b64 s[30:31]3396;3397; GFX10-LABEL: v_minimumnum_v2f16_nnan:3398; GFX10: ; %bb.0:3399; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3400; GFX10-NEXT: v_pk_min_f16 v0, v0, v13401; GFX10-NEXT: s_setpc_b64 s[30:31]3402;3403; GFX11-LABEL: v_minimumnum_v2f16_nnan:3404; GFX11: ; %bb.0:3405; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3406; GFX11-NEXT: v_pk_min_f16 v0, v0, v13407; GFX11-NEXT: s_setpc_b64 s[30:31]3408;3409; GFX12-LABEL: v_minimumnum_v2f16_nnan:3410; GFX12: ; %bb.0:3411; GFX12-NEXT: s_wait_loadcnt_dscnt 0x03412; GFX12-NEXT: s_wait_expcnt 0x03413; GFX12-NEXT: s_wait_samplecnt 0x03414; GFX12-NEXT: s_wait_bvhcnt 0x03415; GFX12-NEXT: s_wait_kmcnt 0x03416; GFX12-NEXT: v_pk_min_num_f16 v0, v0, v13417; GFX12-NEXT: s_setpc_b64 s[30:31]3418 %result = call nnan <2 x half> @llvm.minimumnum.v2f16(<2 x half> %x, <2 x half> %y)3419 ret <2 x half> %result3420}3421 3422define <3 x half> @v_minimumnum_v3f16(<3 x half> %x, <3 x half> %y) {3423; GFX7-SDAG-LABEL: v_minimumnum_v3f16:3424; GFX7-SDAG: ; %bb.0:3425; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3426; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v2, v23427; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v5, v53428; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v1, v13429; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v03430; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v3, v33431; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v4, v43432; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v2, v23433; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v1, v13434; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v03435; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v3, v33436; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v4, v43437; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v5, v53438; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v33439; GFX7-SDAG-NEXT: v_min_f32_e32 v1, v1, v43440; GFX7-SDAG-NEXT: v_min_f32_e32 v2, v2, v53441; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]3442;3443; GFX7-GISEL-LABEL: v_minimumnum_v3f16:3444; GFX7-GISEL: ; %bb.0:3445; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3446; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v0, v03447; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v3, v33448; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v1, v13449; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v2, v23450; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v33451; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v3, v43452; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v4, v53453; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v0, v03454; GFX7-GISEL-NEXT: v_min_f32_e32 v1, v1, v33455; GFX7-GISEL-NEXT: v_min_f32_e32 v2, v2, v43456; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v1, v13457; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v2, v23458; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]3459;3460; GFX8-SDAG-LABEL: v_minimumnum_v3f16:3461; GFX8-SDAG: ; %bb.0:3462; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3463; GFX8-SDAG-NEXT: v_max_f16_sdwa v4, v2, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_13464; GFX8-SDAG-NEXT: v_max_f16_sdwa v5, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_13465; GFX8-SDAG-NEXT: v_max_f16_e32 v2, v2, v23466; GFX8-SDAG-NEXT: v_max_f16_e32 v0, v0, v03467; GFX8-SDAG-NEXT: v_min_f16_sdwa v4, v5, v4 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD3468; GFX8-SDAG-NEXT: v_max_f16_e32 v3, v3, v33469; GFX8-SDAG-NEXT: v_max_f16_e32 v1, v1, v13470; GFX8-SDAG-NEXT: v_min_f16_e32 v0, v0, v23471; GFX8-SDAG-NEXT: v_min_f16_e32 v1, v1, v33472; GFX8-SDAG-NEXT: v_or_b32_e32 v0, v0, v43473; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]3474;3475; GFX8-GISEL-LABEL: v_minimumnum_v3f16:3476; GFX8-GISEL: ; %bb.0:3477; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3478; GFX8-GISEL-NEXT: v_max_f16_e32 v4, v0, v03479; GFX8-GISEL-NEXT: v_max_f16_e32 v5, v2, v23480; GFX8-GISEL-NEXT: v_max_f16_sdwa v0, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_13481; GFX8-GISEL-NEXT: v_max_f16_sdwa v2, v2, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_13482; GFX8-GISEL-NEXT: v_min_f16_e32 v4, v4, v53483; GFX8-GISEL-NEXT: v_min_f16_sdwa v0, v0, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD3484; GFX8-GISEL-NEXT: v_max_f16_e32 v1, v1, v13485; GFX8-GISEL-NEXT: v_max_f16_e32 v2, v3, v33486; GFX8-GISEL-NEXT: v_min_f16_e32 v1, v1, v23487; GFX8-GISEL-NEXT: v_or_b32_e32 v0, v4, v03488; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]3489;3490; GFX9-SDAG-LABEL: v_minimumnum_v3f16:3491; GFX9-SDAG: ; %bb.0:3492; GFX9-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3493; GFX9-SDAG-NEXT: v_pk_max_f16 v3, v3, v33494; GFX9-SDAG-NEXT: v_pk_max_f16 v1, v1, v13495; GFX9-SDAG-NEXT: v_pk_max_f16 v2, v2, v23496; GFX9-SDAG-NEXT: v_pk_max_f16 v0, v0, v03497; GFX9-SDAG-NEXT: v_pk_min_f16 v1, v1, v33498; GFX9-SDAG-NEXT: v_pk_min_f16 v0, v0, v23499; GFX9-SDAG-NEXT: s_setpc_b64 s[30:31]3500;3501; GFX900-GISEL-LABEL: v_minimumnum_v3f16:3502; GFX900-GISEL: ; %bb.0:3503; GFX900-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3504; GFX900-GISEL-NEXT: v_pk_max_f16 v0, v0, v03505; GFX900-GISEL-NEXT: v_pk_max_f16 v2, v2, v23506; GFX900-GISEL-NEXT: v_pk_min_f16 v0, v0, v23507; GFX900-GISEL-NEXT: v_pk_max_f16 v1, v1, v13508; GFX900-GISEL-NEXT: v_pk_max_f16 v2, v3, v33509; GFX900-GISEL-NEXT: v_pk_min_f16 v1, v1, v23510; GFX900-GISEL-NEXT: s_setpc_b64 s[30:31]3511;3512; GFX950-GISEL-LABEL: v_minimumnum_v3f16:3513; GFX950-GISEL: ; %bb.0:3514; GFX950-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3515; GFX950-GISEL-NEXT: v_pk_max_f16 v0, v0, v03516; GFX950-GISEL-NEXT: v_pk_max_f16 v2, v2, v23517; GFX950-GISEL-NEXT: v_pk_max_f16 v1, v1, v13518; GFX950-GISEL-NEXT: v_pk_min_f16 v0, v0, v23519; GFX950-GISEL-NEXT: v_pk_max_f16 v2, v3, v33520; GFX950-GISEL-NEXT: s_nop 03521; GFX950-GISEL-NEXT: v_pk_min_f16 v1, v1, v23522; GFX950-GISEL-NEXT: s_setpc_b64 s[30:31]3523;3524; GFX10-SDAG-LABEL: v_minimumnum_v3f16:3525; GFX10-SDAG: ; %bb.0:3526; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3527; GFX10-SDAG-NEXT: v_pk_max_f16 v3, v3, v33528; GFX10-SDAG-NEXT: v_pk_max_f16 v2, v2, v23529; GFX10-SDAG-NEXT: v_pk_max_f16 v0, v0, v03530; GFX10-SDAG-NEXT: v_pk_max_f16 v1, v1, v13531; GFX10-SDAG-NEXT: v_pk_min_f16 v0, v0, v23532; GFX10-SDAG-NEXT: v_pk_min_f16 v1, v1, v33533; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]3534;3535; GFX10-GISEL-LABEL: v_minimumnum_v3f16:3536; GFX10-GISEL: ; %bb.0:3537; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3538; GFX10-GISEL-NEXT: v_pk_max_f16 v0, v0, v03539; GFX10-GISEL-NEXT: v_pk_max_f16 v2, v2, v23540; GFX10-GISEL-NEXT: v_pk_max_f16 v1, v1, v13541; GFX10-GISEL-NEXT: v_pk_max_f16 v3, v3, v33542; GFX10-GISEL-NEXT: v_pk_min_f16 v0, v0, v23543; GFX10-GISEL-NEXT: v_pk_min_f16 v1, v1, v33544; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]3545;3546; GFX11-SDAG-LABEL: v_minimumnum_v3f16:3547; GFX11-SDAG: ; %bb.0:3548; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3549; GFX11-SDAG-NEXT: v_pk_max_f16 v3, v3, v33550; GFX11-SDAG-NEXT: v_pk_max_f16 v2, v2, v23551; GFX11-SDAG-NEXT: v_pk_max_f16 v0, v0, v03552; GFX11-SDAG-NEXT: v_pk_max_f16 v1, v1, v13553; GFX11-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)3554; GFX11-SDAG-NEXT: v_pk_min_f16 v0, v0, v23555; GFX11-SDAG-NEXT: v_pk_min_f16 v1, v1, v33556; GFX11-SDAG-NEXT: s_setpc_b64 s[30:31]3557;3558; GFX11-GISEL-LABEL: v_minimumnum_v3f16:3559; GFX11-GISEL: ; %bb.0:3560; GFX11-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3561; GFX11-GISEL-NEXT: v_pk_max_f16 v0, v0, v03562; GFX11-GISEL-NEXT: v_pk_max_f16 v2, v2, v23563; GFX11-GISEL-NEXT: v_pk_max_f16 v1, v1, v13564; GFX11-GISEL-NEXT: v_pk_max_f16 v3, v3, v33565; GFX11-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)3566; GFX11-GISEL-NEXT: v_pk_min_f16 v0, v0, v23567; GFX11-GISEL-NEXT: v_pk_min_f16 v1, v1, v33568; GFX11-GISEL-NEXT: s_setpc_b64 s[30:31]3569;3570; GFX12-SDAG-LABEL: v_minimumnum_v3f16:3571; GFX12-SDAG: ; %bb.0:3572; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x03573; GFX12-SDAG-NEXT: s_wait_expcnt 0x03574; GFX12-SDAG-NEXT: s_wait_samplecnt 0x03575; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x03576; GFX12-SDAG-NEXT: s_wait_kmcnt 0x03577; GFX12-SDAG-NEXT: v_pk_max_num_f16 v3, v3, v33578; GFX12-SDAG-NEXT: v_pk_max_num_f16 v2, v2, v23579; GFX12-SDAG-NEXT: v_pk_max_num_f16 v0, v0, v03580; GFX12-SDAG-NEXT: v_pk_max_num_f16 v1, v1, v13581; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)3582; GFX12-SDAG-NEXT: v_pk_min_num_f16 v0, v0, v23583; GFX12-SDAG-NEXT: v_pk_min_num_f16 v1, v1, v33584; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]3585;3586; GFX12-GISEL-LABEL: v_minimumnum_v3f16:3587; GFX12-GISEL: ; %bb.0:3588; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x03589; GFX12-GISEL-NEXT: s_wait_expcnt 0x03590; GFX12-GISEL-NEXT: s_wait_samplecnt 0x03591; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x03592; GFX12-GISEL-NEXT: s_wait_kmcnt 0x03593; GFX12-GISEL-NEXT: v_pk_max_num_f16 v0, v0, v03594; GFX12-GISEL-NEXT: v_pk_max_num_f16 v2, v2, v23595; GFX12-GISEL-NEXT: v_pk_max_num_f16 v1, v1, v13596; GFX12-GISEL-NEXT: v_pk_max_num_f16 v3, v3, v33597; GFX12-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)3598; GFX12-GISEL-NEXT: v_pk_min_num_f16 v0, v0, v23599; GFX12-GISEL-NEXT: v_pk_min_num_f16 v1, v1, v33600; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]3601 %result = call <3 x half> @llvm.minimumnum.v3f16(<3 x half> %x, <3 x half> %y)3602 ret <3 x half> %result3603}3604 3605define <3 x half> @v_minimumnum_v3f16_nnan(<3 x half> %x, <3 x half> %y) {3606; GFX7-SDAG-LABEL: v_minimumnum_v3f16_nnan:3607; GFX7-SDAG: ; %bb.0:3608; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3609; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v5, v53610; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v2, v23611; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v4, v43612; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v3, v33613; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v03614; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v1, v13615; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v5, v53616; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v4, v43617; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v3, v33618; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v03619; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v1, v13620; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v2, v23621; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v33622; GFX7-SDAG-NEXT: v_min_f32_e32 v1, v1, v43623; GFX7-SDAG-NEXT: v_min_f32_e32 v2, v2, v53624; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]3625;3626; GFX7-GISEL-LABEL: v_minimumnum_v3f16_nnan:3627; GFX7-GISEL: ; %bb.0:3628; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3629; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v0, v03630; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v3, v33631; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v1, v13632; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v2, v23633; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v33634; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v3, v43635; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v4, v53636; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v0, v03637; GFX7-GISEL-NEXT: v_min_f32_e32 v1, v1, v33638; GFX7-GISEL-NEXT: v_min_f32_e32 v2, v2, v43639; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v1, v13640; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v2, v23641; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]3642;3643; GFX8-SDAG-LABEL: v_minimumnum_v3f16_nnan:3644; GFX8-SDAG: ; %bb.0:3645; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3646; GFX8-SDAG-NEXT: v_min_f16_sdwa v4, v0, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_13647; GFX8-SDAG-NEXT: v_min_f16_e32 v0, v0, v23648; GFX8-SDAG-NEXT: v_min_f16_e32 v1, v1, v33649; GFX8-SDAG-NEXT: v_or_b32_e32 v0, v0, v43650; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]3651;3652; GFX8-GISEL-LABEL: v_minimumnum_v3f16_nnan:3653; GFX8-GISEL: ; %bb.0:3654; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3655; GFX8-GISEL-NEXT: v_min_f16_e32 v4, v0, v23656; GFX8-GISEL-NEXT: v_min_f16_sdwa v0, v0, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_13657; GFX8-GISEL-NEXT: v_min_f16_e32 v1, v1, v33658; GFX8-GISEL-NEXT: v_or_b32_e32 v0, v4, v03659; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]3660;3661; GFX9-SDAG-LABEL: v_minimumnum_v3f16_nnan:3662; GFX9-SDAG: ; %bb.0:3663; GFX9-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3664; GFX9-SDAG-NEXT: v_pk_min_f16 v1, v1, v33665; GFX9-SDAG-NEXT: v_pk_min_f16 v0, v0, v23666; GFX9-SDAG-NEXT: s_setpc_b64 s[30:31]3667;3668; GFX9-GISEL-LABEL: v_minimumnum_v3f16_nnan:3669; GFX9-GISEL: ; %bb.0:3670; GFX9-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3671; GFX9-GISEL-NEXT: v_pk_min_f16 v0, v0, v23672; GFX9-GISEL-NEXT: v_pk_min_f16 v1, v1, v33673; GFX9-GISEL-NEXT: s_setpc_b64 s[30:31]3674;3675; GFX10-LABEL: v_minimumnum_v3f16_nnan:3676; GFX10: ; %bb.0:3677; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3678; GFX10-NEXT: v_pk_min_f16 v0, v0, v23679; GFX10-NEXT: v_pk_min_f16 v1, v1, v33680; GFX10-NEXT: s_setpc_b64 s[30:31]3681;3682; GFX11-LABEL: v_minimumnum_v3f16_nnan:3683; GFX11: ; %bb.0:3684; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3685; GFX11-NEXT: v_pk_min_f16 v0, v0, v23686; GFX11-NEXT: v_pk_min_f16 v1, v1, v33687; GFX11-NEXT: s_setpc_b64 s[30:31]3688;3689; GFX12-LABEL: v_minimumnum_v3f16_nnan:3690; GFX12: ; %bb.0:3691; GFX12-NEXT: s_wait_loadcnt_dscnt 0x03692; GFX12-NEXT: s_wait_expcnt 0x03693; GFX12-NEXT: s_wait_samplecnt 0x03694; GFX12-NEXT: s_wait_bvhcnt 0x03695; GFX12-NEXT: s_wait_kmcnt 0x03696; GFX12-NEXT: v_pk_min_num_f16 v0, v0, v23697; GFX12-NEXT: v_pk_min_num_f16 v1, v1, v33698; GFX12-NEXT: s_setpc_b64 s[30:31]3699 %result = call nnan <3 x half> @llvm.minimumnum.v3f16(<3 x half> %x, <3 x half> %y)3700 ret <3 x half> %result3701}3702 3703define <4 x half> @v_minimumnum_v4f16(<4 x half> %x, <4 x half> %y) {3704; GFX7-SDAG-LABEL: v_minimumnum_v4f16:3705; GFX7-SDAG: ; %bb.0:3706; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3707; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v3, v33708; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v2, v23709; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v7, v73710; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v6, v63711; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v1, v13712; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v03713; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v4, v43714; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v5, v53715; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v3, v33716; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v2, v23717; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v1, v13718; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v03719; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v4, v43720; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v5, v53721; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v6, v63722; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v7, v73723; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v43724; GFX7-SDAG-NEXT: v_min_f32_e32 v1, v1, v53725; GFX7-SDAG-NEXT: v_min_f32_e32 v2, v2, v63726; GFX7-SDAG-NEXT: v_min_f32_e32 v3, v3, v73727; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]3728;3729; GFX7-GISEL-LABEL: v_minimumnum_v4f16:3730; GFX7-GISEL: ; %bb.0:3731; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3732; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v0, v03733; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v4, v43734; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v1, v13735; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v5, v53736; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v2, v23737; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v43738; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v4, v63739; GFX7-GISEL-NEXT: v_min_f32_e32 v1, v1, v53740; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v3, v33741; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v5, v73742; GFX7-GISEL-NEXT: v_min_f32_e32 v2, v2, v43743; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v0, v03744; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v1, v13745; GFX7-GISEL-NEXT: v_min_f32_e32 v3, v3, v53746; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v2, v23747; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v3, v33748; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]3749;3750; GFX8-SDAG-LABEL: v_minimumnum_v4f16:3751; GFX8-SDAG: ; %bb.0:3752; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3753; GFX8-SDAG-NEXT: v_max_f16_sdwa v4, v3, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_13754; GFX8-SDAG-NEXT: v_max_f16_sdwa v5, v1, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_13755; GFX8-SDAG-NEXT: v_min_f16_sdwa v4, v5, v4 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD3756; GFX8-SDAG-NEXT: v_max_f16_sdwa v5, v2, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_13757; GFX8-SDAG-NEXT: v_max_f16_sdwa v6, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_13758; GFX8-SDAG-NEXT: v_max_f16_e32 v3, v3, v33759; GFX8-SDAG-NEXT: v_max_f16_e32 v1, v1, v13760; GFX8-SDAG-NEXT: v_max_f16_e32 v2, v2, v23761; GFX8-SDAG-NEXT: v_max_f16_e32 v0, v0, v03762; GFX8-SDAG-NEXT: v_min_f16_sdwa v5, v6, v5 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD3763; GFX8-SDAG-NEXT: v_min_f16_e32 v1, v1, v33764; GFX8-SDAG-NEXT: v_min_f16_e32 v0, v0, v23765; GFX8-SDAG-NEXT: v_or_b32_e32 v0, v0, v53766; GFX8-SDAG-NEXT: v_or_b32_e32 v1, v1, v43767; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]3768;3769; GFX8-GISEL-LABEL: v_minimumnum_v4f16:3770; GFX8-GISEL: ; %bb.0:3771; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3772; GFX8-GISEL-NEXT: v_max_f16_e32 v4, v0, v03773; GFX8-GISEL-NEXT: v_max_f16_e32 v5, v2, v23774; GFX8-GISEL-NEXT: v_max_f16_sdwa v0, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_13775; GFX8-GISEL-NEXT: v_max_f16_sdwa v2, v2, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_13776; GFX8-GISEL-NEXT: v_min_f16_e32 v4, v4, v53777; GFX8-GISEL-NEXT: v_min_f16_sdwa v0, v0, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD3778; GFX8-GISEL-NEXT: v_max_f16_e32 v2, v1, v13779; GFX8-GISEL-NEXT: v_max_f16_e32 v5, v3, v33780; GFX8-GISEL-NEXT: v_max_f16_sdwa v1, v1, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_13781; GFX8-GISEL-NEXT: v_max_f16_sdwa v3, v3, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_13782; GFX8-GISEL-NEXT: v_min_f16_e32 v2, v2, v53783; GFX8-GISEL-NEXT: v_min_f16_sdwa v1, v1, v3 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD3784; GFX8-GISEL-NEXT: v_or_b32_e32 v0, v4, v03785; GFX8-GISEL-NEXT: v_or_b32_e32 v1, v2, v13786; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]3787;3788; GFX900-SDAG-LABEL: v_minimumnum_v4f16:3789; GFX900-SDAG: ; %bb.0:3790; GFX900-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3791; GFX900-SDAG-NEXT: v_pk_max_f16 v2, v2, v23792; GFX900-SDAG-NEXT: v_pk_max_f16 v0, v0, v03793; GFX900-SDAG-NEXT: v_pk_min_f16 v0, v0, v23794; GFX900-SDAG-NEXT: v_pk_max_f16 v2, v3, v33795; GFX900-SDAG-NEXT: v_pk_max_f16 v1, v1, v13796; GFX900-SDAG-NEXT: v_pk_min_f16 v1, v1, v23797; GFX900-SDAG-NEXT: s_setpc_b64 s[30:31]3798;3799; GFX900-GISEL-LABEL: v_minimumnum_v4f16:3800; GFX900-GISEL: ; %bb.0:3801; GFX900-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3802; GFX900-GISEL-NEXT: v_pk_max_f16 v0, v0, v03803; GFX900-GISEL-NEXT: v_pk_max_f16 v2, v2, v23804; GFX900-GISEL-NEXT: v_pk_min_f16 v0, v0, v23805; GFX900-GISEL-NEXT: v_pk_max_f16 v1, v1, v13806; GFX900-GISEL-NEXT: v_pk_max_f16 v2, v3, v33807; GFX900-GISEL-NEXT: v_pk_min_f16 v1, v1, v23808; GFX900-GISEL-NEXT: s_setpc_b64 s[30:31]3809;3810; GFX950-SDAG-LABEL: v_minimumnum_v4f16:3811; GFX950-SDAG: ; %bb.0:3812; GFX950-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3813; GFX950-SDAG-NEXT: v_pk_max_f16 v2, v2, v23814; GFX950-SDAG-NEXT: v_pk_max_f16 v0, v0, v03815; GFX950-SDAG-NEXT: v_pk_max_f16 v1, v1, v13816; GFX950-SDAG-NEXT: v_pk_min_f16 v0, v0, v23817; GFX950-SDAG-NEXT: v_pk_max_f16 v2, v3, v33818; GFX950-SDAG-NEXT: s_nop 03819; GFX950-SDAG-NEXT: v_pk_min_f16 v1, v1, v23820; GFX950-SDAG-NEXT: s_setpc_b64 s[30:31]3821;3822; GFX950-GISEL-LABEL: v_minimumnum_v4f16:3823; GFX950-GISEL: ; %bb.0:3824; GFX950-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3825; GFX950-GISEL-NEXT: v_pk_max_f16 v0, v0, v03826; GFX950-GISEL-NEXT: v_pk_max_f16 v2, v2, v23827; GFX950-GISEL-NEXT: v_pk_max_f16 v1, v1, v13828; GFX950-GISEL-NEXT: v_pk_min_f16 v0, v0, v23829; GFX950-GISEL-NEXT: v_pk_max_f16 v2, v3, v33830; GFX950-GISEL-NEXT: s_nop 03831; GFX950-GISEL-NEXT: v_pk_min_f16 v1, v1, v23832; GFX950-GISEL-NEXT: s_setpc_b64 s[30:31]3833;3834; GFX10-SDAG-LABEL: v_minimumnum_v4f16:3835; GFX10-SDAG: ; %bb.0:3836; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3837; GFX10-SDAG-NEXT: v_pk_max_f16 v2, v2, v23838; GFX10-SDAG-NEXT: v_pk_max_f16 v0, v0, v03839; GFX10-SDAG-NEXT: v_pk_max_f16 v3, v3, v33840; GFX10-SDAG-NEXT: v_pk_max_f16 v1, v1, v13841; GFX10-SDAG-NEXT: v_pk_min_f16 v0, v0, v23842; GFX10-SDAG-NEXT: v_pk_min_f16 v1, v1, v33843; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]3844;3845; GFX10-GISEL-LABEL: v_minimumnum_v4f16:3846; GFX10-GISEL: ; %bb.0:3847; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3848; GFX10-GISEL-NEXT: v_pk_max_f16 v0, v0, v03849; GFX10-GISEL-NEXT: v_pk_max_f16 v2, v2, v23850; GFX10-GISEL-NEXT: v_pk_max_f16 v1, v1, v13851; GFX10-GISEL-NEXT: v_pk_max_f16 v3, v3, v33852; GFX10-GISEL-NEXT: v_pk_min_f16 v0, v0, v23853; GFX10-GISEL-NEXT: v_pk_min_f16 v1, v1, v33854; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]3855;3856; GFX11-SDAG-LABEL: v_minimumnum_v4f16:3857; GFX11-SDAG: ; %bb.0:3858; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3859; GFX11-SDAG-NEXT: v_pk_max_f16 v2, v2, v23860; GFX11-SDAG-NEXT: v_pk_max_f16 v0, v0, v03861; GFX11-SDAG-NEXT: v_pk_max_f16 v3, v3, v33862; GFX11-SDAG-NEXT: v_pk_max_f16 v1, v1, v13863; GFX11-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)3864; GFX11-SDAG-NEXT: v_pk_min_f16 v0, v0, v23865; GFX11-SDAG-NEXT: v_pk_min_f16 v1, v1, v33866; GFX11-SDAG-NEXT: s_setpc_b64 s[30:31]3867;3868; GFX11-GISEL-LABEL: v_minimumnum_v4f16:3869; GFX11-GISEL: ; %bb.0:3870; GFX11-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3871; GFX11-GISEL-NEXT: v_pk_max_f16 v0, v0, v03872; GFX11-GISEL-NEXT: v_pk_max_f16 v2, v2, v23873; GFX11-GISEL-NEXT: v_pk_max_f16 v1, v1, v13874; GFX11-GISEL-NEXT: v_pk_max_f16 v3, v3, v33875; GFX11-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)3876; GFX11-GISEL-NEXT: v_pk_min_f16 v0, v0, v23877; GFX11-GISEL-NEXT: v_pk_min_f16 v1, v1, v33878; GFX11-GISEL-NEXT: s_setpc_b64 s[30:31]3879;3880; GFX12-SDAG-LABEL: v_minimumnum_v4f16:3881; GFX12-SDAG: ; %bb.0:3882; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x03883; GFX12-SDAG-NEXT: s_wait_expcnt 0x03884; GFX12-SDAG-NEXT: s_wait_samplecnt 0x03885; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x03886; GFX12-SDAG-NEXT: s_wait_kmcnt 0x03887; GFX12-SDAG-NEXT: v_pk_max_num_f16 v2, v2, v23888; GFX12-SDAG-NEXT: v_pk_max_num_f16 v0, v0, v03889; GFX12-SDAG-NEXT: v_pk_max_num_f16 v3, v3, v33890; GFX12-SDAG-NEXT: v_pk_max_num_f16 v1, v1, v13891; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)3892; GFX12-SDAG-NEXT: v_pk_min_num_f16 v0, v0, v23893; GFX12-SDAG-NEXT: v_pk_min_num_f16 v1, v1, v33894; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]3895;3896; GFX12-GISEL-LABEL: v_minimumnum_v4f16:3897; GFX12-GISEL: ; %bb.0:3898; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x03899; GFX12-GISEL-NEXT: s_wait_expcnt 0x03900; GFX12-GISEL-NEXT: s_wait_samplecnt 0x03901; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x03902; GFX12-GISEL-NEXT: s_wait_kmcnt 0x03903; GFX12-GISEL-NEXT: v_pk_max_num_f16 v0, v0, v03904; GFX12-GISEL-NEXT: v_pk_max_num_f16 v2, v2, v23905; GFX12-GISEL-NEXT: v_pk_max_num_f16 v1, v1, v13906; GFX12-GISEL-NEXT: v_pk_max_num_f16 v3, v3, v33907; GFX12-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)3908; GFX12-GISEL-NEXT: v_pk_min_num_f16 v0, v0, v23909; GFX12-GISEL-NEXT: v_pk_min_num_f16 v1, v1, v33910; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]3911 %result = call <4 x half> @llvm.minimumnum.v4f16(<4 x half> %x, <4 x half> %y)3912 ret <4 x half> %result3913}3914 3915define <4 x half> @v_minimumnum_v4f16_nnan(<4 x half> %x, <4 x half> %y) {3916; GFX7-SDAG-LABEL: v_minimumnum_v4f16_nnan:3917; GFX7-SDAG: ; %bb.0:3918; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3919; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v7, v73920; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v6, v63921; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v3, v33922; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v2, v23923; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v5, v53924; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v4, v43925; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v03926; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v1, v13927; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v7, v73928; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v6, v63929; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v5, v53930; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v4, v43931; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v03932; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v1, v13933; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v2, v23934; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v3, v33935; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v43936; GFX7-SDAG-NEXT: v_min_f32_e32 v1, v1, v53937; GFX7-SDAG-NEXT: v_min_f32_e32 v2, v2, v63938; GFX7-SDAG-NEXT: v_min_f32_e32 v3, v3, v73939; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]3940;3941; GFX7-GISEL-LABEL: v_minimumnum_v4f16_nnan:3942; GFX7-GISEL: ; %bb.0:3943; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3944; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v0, v03945; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v4, v43946; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v1, v13947; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v5, v53948; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v2, v23949; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v43950; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v4, v63951; GFX7-GISEL-NEXT: v_min_f32_e32 v1, v1, v53952; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v3, v33953; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v5, v73954; GFX7-GISEL-NEXT: v_min_f32_e32 v2, v2, v43955; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v0, v03956; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v1, v13957; GFX7-GISEL-NEXT: v_min_f32_e32 v3, v3, v53958; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v2, v23959; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v3, v33960; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]3961;3962; GFX8-SDAG-LABEL: v_minimumnum_v4f16_nnan:3963; GFX8-SDAG: ; %bb.0:3964; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3965; GFX8-SDAG-NEXT: v_min_f16_sdwa v4, v1, v3 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_13966; GFX8-SDAG-NEXT: v_min_f16_sdwa v5, v0, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_13967; GFX8-SDAG-NEXT: v_min_f16_e32 v1, v1, v33968; GFX8-SDAG-NEXT: v_min_f16_e32 v0, v0, v23969; GFX8-SDAG-NEXT: v_or_b32_e32 v0, v0, v53970; GFX8-SDAG-NEXT: v_or_b32_e32 v1, v1, v43971; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]3972;3973; GFX8-GISEL-LABEL: v_minimumnum_v4f16_nnan:3974; GFX8-GISEL: ; %bb.0:3975; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3976; GFX8-GISEL-NEXT: v_min_f16_e32 v4, v0, v23977; GFX8-GISEL-NEXT: v_min_f16_sdwa v0, v0, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_13978; GFX8-GISEL-NEXT: v_min_f16_e32 v2, v1, v33979; GFX8-GISEL-NEXT: v_min_f16_sdwa v1, v1, v3 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_13980; GFX8-GISEL-NEXT: v_or_b32_e32 v0, v4, v03981; GFX8-GISEL-NEXT: v_or_b32_e32 v1, v2, v13982; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]3983;3984; GFX9-LABEL: v_minimumnum_v4f16_nnan:3985; GFX9: ; %bb.0:3986; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3987; GFX9-NEXT: v_pk_min_f16 v0, v0, v23988; GFX9-NEXT: v_pk_min_f16 v1, v1, v33989; GFX9-NEXT: s_setpc_b64 s[30:31]3990;3991; GFX10-LABEL: v_minimumnum_v4f16_nnan:3992; GFX10: ; %bb.0:3993; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3994; GFX10-NEXT: v_pk_min_f16 v0, v0, v23995; GFX10-NEXT: v_pk_min_f16 v1, v1, v33996; GFX10-NEXT: s_setpc_b64 s[30:31]3997;3998; GFX11-LABEL: v_minimumnum_v4f16_nnan:3999; GFX11: ; %bb.0:4000; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4001; GFX11-NEXT: v_pk_min_f16 v0, v0, v24002; GFX11-NEXT: v_pk_min_f16 v1, v1, v34003; GFX11-NEXT: s_setpc_b64 s[30:31]4004;4005; GFX12-LABEL: v_minimumnum_v4f16_nnan:4006; GFX12: ; %bb.0:4007; GFX12-NEXT: s_wait_loadcnt_dscnt 0x04008; GFX12-NEXT: s_wait_expcnt 0x04009; GFX12-NEXT: s_wait_samplecnt 0x04010; GFX12-NEXT: s_wait_bvhcnt 0x04011; GFX12-NEXT: s_wait_kmcnt 0x04012; GFX12-NEXT: v_pk_min_num_f16 v0, v0, v24013; GFX12-NEXT: v_pk_min_num_f16 v1, v1, v34014; GFX12-NEXT: s_setpc_b64 s[30:31]4015 %result = call nnan <4 x half> @llvm.minimumnum.v4f16(<4 x half> %x, <4 x half> %y)4016 ret <4 x half> %result4017}4018 4019define <6 x half> @v_minimumnum_v6f16(<6 x half> %x, <6 x half> %y) {4020; GFX7-SDAG-LABEL: v_minimumnum_v6f16:4021; GFX7-SDAG: ; %bb.0:4022; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4023; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v5, v54024; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v11, v114025; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v4, v44026; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v10, v104027; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v3, v34028; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v2, v24029; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v9, v94030; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v8, v84031; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v1, v14032; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v04033; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v6, v64034; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v7, v74035; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v5, v54036; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v11, v114037; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v4, v44038; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v10, v104039; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v3, v34040; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v2, v24041; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v1, v14042; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v04043; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v6, v64044; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v7, v74045; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v8, v84046; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v9, v94047; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v64048; GFX7-SDAG-NEXT: v_min_f32_e32 v1, v1, v74049; GFX7-SDAG-NEXT: v_min_f32_e32 v2, v2, v84050; GFX7-SDAG-NEXT: v_min_f32_e32 v3, v3, v94051; GFX7-SDAG-NEXT: v_min_f32_e32 v4, v4, v104052; GFX7-SDAG-NEXT: v_min_f32_e32 v5, v5, v114053; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]4054;4055; GFX7-GISEL-LABEL: v_minimumnum_v6f16:4056; GFX7-GISEL: ; %bb.0:4057; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4058; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v0, v04059; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v6, v64060; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v1, v14061; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v7, v74062; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v2, v24063; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v64064; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v6, v84065; GFX7-GISEL-NEXT: v_min_f32_e32 v1, v1, v74066; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v3, v34067; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v7, v94068; GFX7-GISEL-NEXT: v_min_f32_e32 v2, v2, v64069; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v4, v44070; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v6, v104071; GFX7-GISEL-NEXT: v_min_f32_e32 v3, v3, v74072; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v5, v54073; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v7, v114074; GFX7-GISEL-NEXT: v_min_f32_e32 v4, v4, v64075; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v0, v04076; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v1, v14077; GFX7-GISEL-NEXT: v_min_f32_e32 v5, v5, v74078; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v2, v24079; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v3, v34080; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v4, v44081; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v5, v54082; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]4083;4084; GFX8-SDAG-LABEL: v_minimumnum_v6f16:4085; GFX8-SDAG: ; %bb.0:4086; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4087; GFX8-SDAG-NEXT: v_max_f16_sdwa v6, v5, v5 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14088; GFX8-SDAG-NEXT: v_max_f16_sdwa v7, v2, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14089; GFX8-SDAG-NEXT: v_min_f16_sdwa v6, v7, v6 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4090; GFX8-SDAG-NEXT: v_max_f16_sdwa v7, v4, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14091; GFX8-SDAG-NEXT: v_max_f16_sdwa v8, v1, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14092; GFX8-SDAG-NEXT: v_min_f16_sdwa v7, v8, v7 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4093; GFX8-SDAG-NEXT: v_max_f16_sdwa v8, v3, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14094; GFX8-SDAG-NEXT: v_max_f16_sdwa v9, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14095; GFX8-SDAG-NEXT: v_max_f16_e32 v5, v5, v54096; GFX8-SDAG-NEXT: v_max_f16_e32 v2, v2, v24097; GFX8-SDAG-NEXT: v_max_f16_e32 v4, v4, v44098; GFX8-SDAG-NEXT: v_max_f16_e32 v1, v1, v14099; GFX8-SDAG-NEXT: v_max_f16_e32 v3, v3, v34100; GFX8-SDAG-NEXT: v_max_f16_e32 v0, v0, v04101; GFX8-SDAG-NEXT: v_min_f16_sdwa v8, v9, v8 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4102; GFX8-SDAG-NEXT: v_min_f16_e32 v2, v2, v54103; GFX8-SDAG-NEXT: v_min_f16_e32 v1, v1, v44104; GFX8-SDAG-NEXT: v_min_f16_e32 v0, v0, v34105; GFX8-SDAG-NEXT: v_or_b32_e32 v0, v0, v84106; GFX8-SDAG-NEXT: v_or_b32_e32 v1, v1, v74107; GFX8-SDAG-NEXT: v_or_b32_e32 v2, v2, v64108; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]4109;4110; GFX8-GISEL-LABEL: v_minimumnum_v6f16:4111; GFX8-GISEL: ; %bb.0:4112; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4113; GFX8-GISEL-NEXT: v_max_f16_e32 v6, v0, v04114; GFX8-GISEL-NEXT: v_max_f16_e32 v7, v3, v34115; GFX8-GISEL-NEXT: v_max_f16_sdwa v0, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14116; GFX8-GISEL-NEXT: v_max_f16_sdwa v3, v3, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14117; GFX8-GISEL-NEXT: v_min_f16_e32 v6, v6, v74118; GFX8-GISEL-NEXT: v_min_f16_sdwa v0, v0, v3 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4119; GFX8-GISEL-NEXT: v_max_f16_e32 v3, v1, v14120; GFX8-GISEL-NEXT: v_max_f16_e32 v7, v4, v44121; GFX8-GISEL-NEXT: v_max_f16_sdwa v1, v1, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14122; GFX8-GISEL-NEXT: v_max_f16_sdwa v4, v4, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14123; GFX8-GISEL-NEXT: v_min_f16_e32 v3, v3, v74124; GFX8-GISEL-NEXT: v_min_f16_sdwa v1, v1, v4 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4125; GFX8-GISEL-NEXT: v_max_f16_e32 v4, v2, v24126; GFX8-GISEL-NEXT: v_max_f16_e32 v7, v5, v54127; GFX8-GISEL-NEXT: v_max_f16_sdwa v2, v2, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14128; GFX8-GISEL-NEXT: v_max_f16_sdwa v5, v5, v5 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14129; GFX8-GISEL-NEXT: v_min_f16_e32 v4, v4, v74130; GFX8-GISEL-NEXT: v_min_f16_sdwa v2, v2, v5 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4131; GFX8-GISEL-NEXT: v_or_b32_e32 v0, v6, v04132; GFX8-GISEL-NEXT: v_or_b32_e32 v1, v3, v14133; GFX8-GISEL-NEXT: v_or_b32_e32 v2, v4, v24134; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]4135;4136; GFX900-SDAG-LABEL: v_minimumnum_v6f16:4137; GFX900-SDAG: ; %bb.0:4138; GFX900-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4139; GFX900-SDAG-NEXT: v_pk_max_f16 v3, v3, v34140; GFX900-SDAG-NEXT: v_pk_max_f16 v0, v0, v04141; GFX900-SDAG-NEXT: v_pk_min_f16 v0, v0, v34142; GFX900-SDAG-NEXT: v_pk_max_f16 v3, v4, v44143; GFX900-SDAG-NEXT: v_pk_max_f16 v1, v1, v14144; GFX900-SDAG-NEXT: v_pk_min_f16 v1, v1, v34145; GFX900-SDAG-NEXT: v_pk_max_f16 v3, v5, v54146; GFX900-SDAG-NEXT: v_pk_max_f16 v2, v2, v24147; GFX900-SDAG-NEXT: v_pk_min_f16 v2, v2, v34148; GFX900-SDAG-NEXT: s_setpc_b64 s[30:31]4149;4150; GFX900-GISEL-LABEL: v_minimumnum_v6f16:4151; GFX900-GISEL: ; %bb.0:4152; GFX900-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4153; GFX900-GISEL-NEXT: v_pk_max_f16 v0, v0, v04154; GFX900-GISEL-NEXT: v_pk_max_f16 v3, v3, v34155; GFX900-GISEL-NEXT: v_pk_min_f16 v0, v0, v34156; GFX900-GISEL-NEXT: v_pk_max_f16 v1, v1, v14157; GFX900-GISEL-NEXT: v_pk_max_f16 v3, v4, v44158; GFX900-GISEL-NEXT: v_pk_min_f16 v1, v1, v34159; GFX900-GISEL-NEXT: v_pk_max_f16 v2, v2, v24160; GFX900-GISEL-NEXT: v_pk_max_f16 v3, v5, v54161; GFX900-GISEL-NEXT: v_pk_min_f16 v2, v2, v34162; GFX900-GISEL-NEXT: s_setpc_b64 s[30:31]4163;4164; GFX950-SDAG-LABEL: v_minimumnum_v6f16:4165; GFX950-SDAG: ; %bb.0:4166; GFX950-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4167; GFX950-SDAG-NEXT: v_pk_max_f16 v3, v3, v34168; GFX950-SDAG-NEXT: v_pk_max_f16 v0, v0, v04169; GFX950-SDAG-NEXT: v_pk_max_f16 v1, v1, v14170; GFX950-SDAG-NEXT: v_pk_min_f16 v0, v0, v34171; GFX950-SDAG-NEXT: v_pk_max_f16 v3, v4, v44172; GFX950-SDAG-NEXT: v_pk_max_f16 v2, v2, v24173; GFX950-SDAG-NEXT: v_pk_min_f16 v1, v1, v34174; GFX950-SDAG-NEXT: v_pk_max_f16 v3, v5, v54175; GFX950-SDAG-NEXT: s_nop 04176; GFX950-SDAG-NEXT: v_pk_min_f16 v2, v2, v34177; GFX950-SDAG-NEXT: s_setpc_b64 s[30:31]4178;4179; GFX950-GISEL-LABEL: v_minimumnum_v6f16:4180; GFX950-GISEL: ; %bb.0:4181; GFX950-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4182; GFX950-GISEL-NEXT: v_pk_max_f16 v0, v0, v04183; GFX950-GISEL-NEXT: v_pk_max_f16 v3, v3, v34184; GFX950-GISEL-NEXT: v_pk_max_f16 v1, v1, v14185; GFX950-GISEL-NEXT: v_pk_min_f16 v0, v0, v34186; GFX950-GISEL-NEXT: v_pk_max_f16 v3, v4, v44187; GFX950-GISEL-NEXT: v_pk_max_f16 v2, v2, v24188; GFX950-GISEL-NEXT: v_pk_min_f16 v1, v1, v34189; GFX950-GISEL-NEXT: v_pk_max_f16 v3, v5, v54190; GFX950-GISEL-NEXT: s_nop 04191; GFX950-GISEL-NEXT: v_pk_min_f16 v2, v2, v34192; GFX950-GISEL-NEXT: s_setpc_b64 s[30:31]4193;4194; GFX10-SDAG-LABEL: v_minimumnum_v6f16:4195; GFX10-SDAG: ; %bb.0:4196; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4197; GFX10-SDAG-NEXT: v_pk_max_f16 v3, v3, v34198; GFX10-SDAG-NEXT: v_pk_max_f16 v0, v0, v04199; GFX10-SDAG-NEXT: v_pk_max_f16 v4, v4, v44200; GFX10-SDAG-NEXT: v_pk_max_f16 v1, v1, v14201; GFX10-SDAG-NEXT: v_pk_max_f16 v5, v5, v54202; GFX10-SDAG-NEXT: v_pk_max_f16 v2, v2, v24203; GFX10-SDAG-NEXT: v_pk_min_f16 v0, v0, v34204; GFX10-SDAG-NEXT: v_pk_min_f16 v1, v1, v44205; GFX10-SDAG-NEXT: v_pk_min_f16 v2, v2, v54206; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]4207;4208; GFX10-GISEL-LABEL: v_minimumnum_v6f16:4209; GFX10-GISEL: ; %bb.0:4210; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4211; GFX10-GISEL-NEXT: v_pk_max_f16 v0, v0, v04212; GFX10-GISEL-NEXT: v_pk_max_f16 v3, v3, v34213; GFX10-GISEL-NEXT: v_pk_max_f16 v1, v1, v14214; GFX10-GISEL-NEXT: v_pk_max_f16 v4, v4, v44215; GFX10-GISEL-NEXT: v_pk_max_f16 v2, v2, v24216; GFX10-GISEL-NEXT: v_pk_max_f16 v5, v5, v54217; GFX10-GISEL-NEXT: v_pk_min_f16 v0, v0, v34218; GFX10-GISEL-NEXT: v_pk_min_f16 v1, v1, v44219; GFX10-GISEL-NEXT: v_pk_min_f16 v2, v2, v54220; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]4221;4222; GFX11-SDAG-LABEL: v_minimumnum_v6f16:4223; GFX11-SDAG: ; %bb.0:4224; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4225; GFX11-SDAG-NEXT: v_pk_max_f16 v3, v3, v34226; GFX11-SDAG-NEXT: v_pk_max_f16 v0, v0, v04227; GFX11-SDAG-NEXT: v_pk_max_f16 v4, v4, v44228; GFX11-SDAG-NEXT: v_pk_max_f16 v1, v1, v14229; GFX11-SDAG-NEXT: v_pk_max_f16 v5, v5, v54230; GFX11-SDAG-NEXT: v_pk_max_f16 v2, v2, v24231; GFX11-SDAG-NEXT: v_pk_min_f16 v0, v0, v34232; GFX11-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_3)4233; GFX11-SDAG-NEXT: v_pk_min_f16 v1, v1, v44234; GFX11-SDAG-NEXT: v_pk_min_f16 v2, v2, v54235; GFX11-SDAG-NEXT: s_setpc_b64 s[30:31]4236;4237; GFX11-GISEL-LABEL: v_minimumnum_v6f16:4238; GFX11-GISEL: ; %bb.0:4239; GFX11-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4240; GFX11-GISEL-NEXT: v_pk_max_f16 v0, v0, v04241; GFX11-GISEL-NEXT: v_pk_max_f16 v3, v3, v34242; GFX11-GISEL-NEXT: v_pk_max_f16 v1, v1, v14243; GFX11-GISEL-NEXT: v_pk_max_f16 v4, v4, v44244; GFX11-GISEL-NEXT: v_pk_max_f16 v2, v2, v24245; GFX11-GISEL-NEXT: v_pk_max_f16 v5, v5, v54246; GFX11-GISEL-NEXT: v_pk_min_f16 v0, v0, v34247; GFX11-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_3)4248; GFX11-GISEL-NEXT: v_pk_min_f16 v1, v1, v44249; GFX11-GISEL-NEXT: v_pk_min_f16 v2, v2, v54250; GFX11-GISEL-NEXT: s_setpc_b64 s[30:31]4251;4252; GFX12-SDAG-LABEL: v_minimumnum_v6f16:4253; GFX12-SDAG: ; %bb.0:4254; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x04255; GFX12-SDAG-NEXT: s_wait_expcnt 0x04256; GFX12-SDAG-NEXT: s_wait_samplecnt 0x04257; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x04258; GFX12-SDAG-NEXT: s_wait_kmcnt 0x04259; GFX12-SDAG-NEXT: v_pk_max_num_f16 v3, v3, v34260; GFX12-SDAG-NEXT: v_pk_max_num_f16 v0, v0, v04261; GFX12-SDAG-NEXT: v_pk_max_num_f16 v4, v4, v44262; GFX12-SDAG-NEXT: v_pk_max_num_f16 v1, v1, v14263; GFX12-SDAG-NEXT: v_pk_max_num_f16 v5, v5, v54264; GFX12-SDAG-NEXT: v_pk_max_num_f16 v2, v2, v24265; GFX12-SDAG-NEXT: v_pk_min_num_f16 v0, v0, v34266; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_3)4267; GFX12-SDAG-NEXT: v_pk_min_num_f16 v1, v1, v44268; GFX12-SDAG-NEXT: v_pk_min_num_f16 v2, v2, v54269; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]4270;4271; GFX12-GISEL-LABEL: v_minimumnum_v6f16:4272; GFX12-GISEL: ; %bb.0:4273; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x04274; GFX12-GISEL-NEXT: s_wait_expcnt 0x04275; GFX12-GISEL-NEXT: s_wait_samplecnt 0x04276; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x04277; GFX12-GISEL-NEXT: s_wait_kmcnt 0x04278; GFX12-GISEL-NEXT: v_pk_max_num_f16 v0, v0, v04279; GFX12-GISEL-NEXT: v_pk_max_num_f16 v3, v3, v34280; GFX12-GISEL-NEXT: v_pk_max_num_f16 v1, v1, v14281; GFX12-GISEL-NEXT: v_pk_max_num_f16 v4, v4, v44282; GFX12-GISEL-NEXT: v_pk_max_num_f16 v2, v2, v24283; GFX12-GISEL-NEXT: v_pk_max_num_f16 v5, v5, v54284; GFX12-GISEL-NEXT: v_pk_min_num_f16 v0, v0, v34285; GFX12-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_3)4286; GFX12-GISEL-NEXT: v_pk_min_num_f16 v1, v1, v44287; GFX12-GISEL-NEXT: v_pk_min_num_f16 v2, v2, v54288; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]4289 %result = call <6 x half> @llvm.minimumnum.v6f16(<6 x half> %x, <6 x half> %y)4290 ret <6 x half> %result4291}4292 4293define <8 x half> @v_minimumnum_v8f16(<8 x half> %x, <8 x half> %y) {4294; GFX7-SDAG-LABEL: v_minimumnum_v8f16:4295; GFX7-SDAG: ; %bb.0:4296; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4297; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v7, v74298; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v15, v154299; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v6, v64300; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v14, v144301; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v5, v54302; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v13, v134303; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v4, v44304; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v12, v124305; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v3, v34306; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v2, v24307; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v11, v114308; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v10, v104309; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v1, v14310; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v04311; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v8, v84312; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v9, v94313; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v7, v74314; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v15, v154315; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v6, v64316; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v14, v144317; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v5, v54318; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v13, v134319; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v4, v44320; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v12, v124321; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v3, v34322; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v2, v24323; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v1, v14324; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v04325; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v8, v84326; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v9, v94327; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v10, v104328; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v11, v114329; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v84330; GFX7-SDAG-NEXT: v_min_f32_e32 v1, v1, v94331; GFX7-SDAG-NEXT: v_min_f32_e32 v2, v2, v104332; GFX7-SDAG-NEXT: v_min_f32_e32 v3, v3, v114333; GFX7-SDAG-NEXT: v_min_f32_e32 v4, v4, v124334; GFX7-SDAG-NEXT: v_min_f32_e32 v5, v5, v134335; GFX7-SDAG-NEXT: v_min_f32_e32 v6, v6, v144336; GFX7-SDAG-NEXT: v_min_f32_e32 v7, v7, v154337; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]4338;4339; GFX7-GISEL-LABEL: v_minimumnum_v8f16:4340; GFX7-GISEL: ; %bb.0:4341; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4342; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v0, v04343; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v8, v84344; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v1, v14345; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v9, v94346; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v2, v24347; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v84348; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v8, v104349; GFX7-GISEL-NEXT: v_min_f32_e32 v1, v1, v94350; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v3, v34351; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v9, v114352; GFX7-GISEL-NEXT: v_min_f32_e32 v2, v2, v84353; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v4, v44354; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v8, v124355; GFX7-GISEL-NEXT: v_min_f32_e32 v3, v3, v94356; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v5, v54357; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v9, v134358; GFX7-GISEL-NEXT: v_min_f32_e32 v4, v4, v84359; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v6, v64360; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v8, v144361; GFX7-GISEL-NEXT: v_min_f32_e32 v5, v5, v94362; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v7, v74363; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v9, v154364; GFX7-GISEL-NEXT: v_min_f32_e32 v6, v6, v84365; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v0, v04366; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v1, v14367; GFX7-GISEL-NEXT: v_min_f32_e32 v7, v7, v94368; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v2, v24369; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v3, v34370; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v4, v44371; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v5, v54372; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v6, v64373; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v7, v74374; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]4375;4376; GFX8-SDAG-LABEL: v_minimumnum_v8f16:4377; GFX8-SDAG: ; %bb.0:4378; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4379; GFX8-SDAG-NEXT: v_max_f16_sdwa v8, v7, v7 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14380; GFX8-SDAG-NEXT: v_max_f16_sdwa v9, v3, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14381; GFX8-SDAG-NEXT: v_min_f16_sdwa v8, v9, v8 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4382; GFX8-SDAG-NEXT: v_max_f16_sdwa v9, v6, v6 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14383; GFX8-SDAG-NEXT: v_max_f16_sdwa v10, v2, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14384; GFX8-SDAG-NEXT: v_min_f16_sdwa v9, v10, v9 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4385; GFX8-SDAG-NEXT: v_max_f16_sdwa v10, v5, v5 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14386; GFX8-SDAG-NEXT: v_max_f16_sdwa v11, v1, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14387; GFX8-SDAG-NEXT: v_min_f16_sdwa v10, v11, v10 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4388; GFX8-SDAG-NEXT: v_max_f16_sdwa v11, v4, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14389; GFX8-SDAG-NEXT: v_max_f16_sdwa v12, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14390; GFX8-SDAG-NEXT: v_max_f16_e32 v7, v7, v74391; GFX8-SDAG-NEXT: v_max_f16_e32 v3, v3, v34392; GFX8-SDAG-NEXT: v_max_f16_e32 v6, v6, v64393; GFX8-SDAG-NEXT: v_max_f16_e32 v2, v2, v24394; GFX8-SDAG-NEXT: v_max_f16_e32 v5, v5, v54395; GFX8-SDAG-NEXT: v_max_f16_e32 v1, v1, v14396; GFX8-SDAG-NEXT: v_max_f16_e32 v4, v4, v44397; GFX8-SDAG-NEXT: v_max_f16_e32 v0, v0, v04398; GFX8-SDAG-NEXT: v_min_f16_sdwa v11, v12, v11 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4399; GFX8-SDAG-NEXT: v_min_f16_e32 v3, v3, v74400; GFX8-SDAG-NEXT: v_min_f16_e32 v2, v2, v64401; GFX8-SDAG-NEXT: v_min_f16_e32 v1, v1, v54402; GFX8-SDAG-NEXT: v_min_f16_e32 v0, v0, v44403; GFX8-SDAG-NEXT: v_or_b32_e32 v0, v0, v114404; GFX8-SDAG-NEXT: v_or_b32_e32 v1, v1, v104405; GFX8-SDAG-NEXT: v_or_b32_e32 v2, v2, v94406; GFX8-SDAG-NEXT: v_or_b32_e32 v3, v3, v84407; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]4408;4409; GFX8-GISEL-LABEL: v_minimumnum_v8f16:4410; GFX8-GISEL: ; %bb.0:4411; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4412; GFX8-GISEL-NEXT: v_max_f16_e32 v8, v0, v04413; GFX8-GISEL-NEXT: v_max_f16_e32 v9, v4, v44414; GFX8-GISEL-NEXT: v_max_f16_sdwa v0, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14415; GFX8-GISEL-NEXT: v_max_f16_sdwa v4, v4, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14416; GFX8-GISEL-NEXT: v_min_f16_e32 v8, v8, v94417; GFX8-GISEL-NEXT: v_min_f16_sdwa v0, v0, v4 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4418; GFX8-GISEL-NEXT: v_max_f16_e32 v4, v1, v14419; GFX8-GISEL-NEXT: v_max_f16_e32 v9, v5, v54420; GFX8-GISEL-NEXT: v_max_f16_sdwa v1, v1, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14421; GFX8-GISEL-NEXT: v_max_f16_sdwa v5, v5, v5 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14422; GFX8-GISEL-NEXT: v_min_f16_e32 v4, v4, v94423; GFX8-GISEL-NEXT: v_min_f16_sdwa v1, v1, v5 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4424; GFX8-GISEL-NEXT: v_max_f16_e32 v5, v2, v24425; GFX8-GISEL-NEXT: v_max_f16_e32 v9, v6, v64426; GFX8-GISEL-NEXT: v_max_f16_sdwa v2, v2, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14427; GFX8-GISEL-NEXT: v_max_f16_sdwa v6, v6, v6 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14428; GFX8-GISEL-NEXT: v_min_f16_e32 v5, v5, v94429; GFX8-GISEL-NEXT: v_min_f16_sdwa v2, v2, v6 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4430; GFX8-GISEL-NEXT: v_max_f16_e32 v6, v3, v34431; GFX8-GISEL-NEXT: v_max_f16_e32 v9, v7, v74432; GFX8-GISEL-NEXT: v_max_f16_sdwa v3, v3, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14433; GFX8-GISEL-NEXT: v_max_f16_sdwa v7, v7, v7 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14434; GFX8-GISEL-NEXT: v_min_f16_e32 v6, v6, v94435; GFX8-GISEL-NEXT: v_min_f16_sdwa v3, v3, v7 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4436; GFX8-GISEL-NEXT: v_or_b32_e32 v0, v8, v04437; GFX8-GISEL-NEXT: v_or_b32_e32 v1, v4, v14438; GFX8-GISEL-NEXT: v_or_b32_e32 v2, v5, v24439; GFX8-GISEL-NEXT: v_or_b32_e32 v3, v6, v34440; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]4441;4442; GFX900-SDAG-LABEL: v_minimumnum_v8f16:4443; GFX900-SDAG: ; %bb.0:4444; GFX900-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4445; GFX900-SDAG-NEXT: v_pk_max_f16 v4, v4, v44446; GFX900-SDAG-NEXT: v_pk_max_f16 v0, v0, v04447; GFX900-SDAG-NEXT: v_pk_min_f16 v0, v0, v44448; GFX900-SDAG-NEXT: v_pk_max_f16 v4, v5, v54449; GFX900-SDAG-NEXT: v_pk_max_f16 v1, v1, v14450; GFX900-SDAG-NEXT: v_pk_min_f16 v1, v1, v44451; GFX900-SDAG-NEXT: v_pk_max_f16 v4, v6, v64452; GFX900-SDAG-NEXT: v_pk_max_f16 v2, v2, v24453; GFX900-SDAG-NEXT: v_pk_min_f16 v2, v2, v44454; GFX900-SDAG-NEXT: v_pk_max_f16 v4, v7, v74455; GFX900-SDAG-NEXT: v_pk_max_f16 v3, v3, v34456; GFX900-SDAG-NEXT: v_pk_min_f16 v3, v3, v44457; GFX900-SDAG-NEXT: s_setpc_b64 s[30:31]4458;4459; GFX900-GISEL-LABEL: v_minimumnum_v8f16:4460; GFX900-GISEL: ; %bb.0:4461; GFX900-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4462; GFX900-GISEL-NEXT: v_pk_max_f16 v0, v0, v04463; GFX900-GISEL-NEXT: v_pk_max_f16 v4, v4, v44464; GFX900-GISEL-NEXT: v_pk_min_f16 v0, v0, v44465; GFX900-GISEL-NEXT: v_pk_max_f16 v1, v1, v14466; GFX900-GISEL-NEXT: v_pk_max_f16 v4, v5, v54467; GFX900-GISEL-NEXT: v_pk_min_f16 v1, v1, v44468; GFX900-GISEL-NEXT: v_pk_max_f16 v2, v2, v24469; GFX900-GISEL-NEXT: v_pk_max_f16 v4, v6, v64470; GFX900-GISEL-NEXT: v_pk_min_f16 v2, v2, v44471; GFX900-GISEL-NEXT: v_pk_max_f16 v3, v3, v34472; GFX900-GISEL-NEXT: v_pk_max_f16 v4, v7, v74473; GFX900-GISEL-NEXT: v_pk_min_f16 v3, v3, v44474; GFX900-GISEL-NEXT: s_setpc_b64 s[30:31]4475;4476; GFX950-SDAG-LABEL: v_minimumnum_v8f16:4477; GFX950-SDAG: ; %bb.0:4478; GFX950-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4479; GFX950-SDAG-NEXT: v_pk_max_f16 v4, v4, v44480; GFX950-SDAG-NEXT: v_pk_max_f16 v0, v0, v04481; GFX950-SDAG-NEXT: v_pk_max_f16 v1, v1, v14482; GFX950-SDAG-NEXT: v_pk_min_f16 v0, v0, v44483; GFX950-SDAG-NEXT: v_pk_max_f16 v4, v5, v54484; GFX950-SDAG-NEXT: v_pk_max_f16 v2, v2, v24485; GFX950-SDAG-NEXT: v_pk_min_f16 v1, v1, v44486; GFX950-SDAG-NEXT: v_pk_max_f16 v4, v6, v64487; GFX950-SDAG-NEXT: v_pk_max_f16 v3, v3, v34488; GFX950-SDAG-NEXT: v_pk_min_f16 v2, v2, v44489; GFX950-SDAG-NEXT: v_pk_max_f16 v4, v7, v74490; GFX950-SDAG-NEXT: s_nop 04491; GFX950-SDAG-NEXT: v_pk_min_f16 v3, v3, v44492; GFX950-SDAG-NEXT: s_setpc_b64 s[30:31]4493;4494; GFX950-GISEL-LABEL: v_minimumnum_v8f16:4495; GFX950-GISEL: ; %bb.0:4496; GFX950-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4497; GFX950-GISEL-NEXT: v_pk_max_f16 v0, v0, v04498; GFX950-GISEL-NEXT: v_pk_max_f16 v4, v4, v44499; GFX950-GISEL-NEXT: v_pk_max_f16 v1, v1, v14500; GFX950-GISEL-NEXT: v_pk_min_f16 v0, v0, v44501; GFX950-GISEL-NEXT: v_pk_max_f16 v4, v5, v54502; GFX950-GISEL-NEXT: v_pk_max_f16 v2, v2, v24503; GFX950-GISEL-NEXT: v_pk_min_f16 v1, v1, v44504; GFX950-GISEL-NEXT: v_pk_max_f16 v4, v6, v64505; GFX950-GISEL-NEXT: v_pk_max_f16 v3, v3, v34506; GFX950-GISEL-NEXT: v_pk_min_f16 v2, v2, v44507; GFX950-GISEL-NEXT: v_pk_max_f16 v4, v7, v74508; GFX950-GISEL-NEXT: s_nop 04509; GFX950-GISEL-NEXT: v_pk_min_f16 v3, v3, v44510; GFX950-GISEL-NEXT: s_setpc_b64 s[30:31]4511;4512; GFX10-SDAG-LABEL: v_minimumnum_v8f16:4513; GFX10-SDAG: ; %bb.0:4514; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4515; GFX10-SDAG-NEXT: v_pk_max_f16 v4, v4, v44516; GFX10-SDAG-NEXT: v_pk_max_f16 v0, v0, v04517; GFX10-SDAG-NEXT: v_pk_max_f16 v5, v5, v54518; GFX10-SDAG-NEXT: v_pk_max_f16 v1, v1, v14519; GFX10-SDAG-NEXT: v_pk_max_f16 v6, v6, v64520; GFX10-SDAG-NEXT: v_pk_max_f16 v2, v2, v24521; GFX10-SDAG-NEXT: v_pk_max_f16 v7, v7, v74522; GFX10-SDAG-NEXT: v_pk_max_f16 v3, v3, v34523; GFX10-SDAG-NEXT: v_pk_min_f16 v0, v0, v44524; GFX10-SDAG-NEXT: v_pk_min_f16 v1, v1, v54525; GFX10-SDAG-NEXT: v_pk_min_f16 v2, v2, v64526; GFX10-SDAG-NEXT: v_pk_min_f16 v3, v3, v74527; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]4528;4529; GFX10-GISEL-LABEL: v_minimumnum_v8f16:4530; GFX10-GISEL: ; %bb.0:4531; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4532; GFX10-GISEL-NEXT: v_pk_max_f16 v0, v0, v04533; GFX10-GISEL-NEXT: v_pk_max_f16 v4, v4, v44534; GFX10-GISEL-NEXT: v_pk_max_f16 v1, v1, v14535; GFX10-GISEL-NEXT: v_pk_max_f16 v5, v5, v54536; GFX10-GISEL-NEXT: v_pk_max_f16 v2, v2, v24537; GFX10-GISEL-NEXT: v_pk_max_f16 v6, v6, v64538; GFX10-GISEL-NEXT: v_pk_max_f16 v3, v3, v34539; GFX10-GISEL-NEXT: v_pk_max_f16 v7, v7, v74540; GFX10-GISEL-NEXT: v_pk_min_f16 v0, v0, v44541; GFX10-GISEL-NEXT: v_pk_min_f16 v1, v1, v54542; GFX10-GISEL-NEXT: v_pk_min_f16 v2, v2, v64543; GFX10-GISEL-NEXT: v_pk_min_f16 v3, v3, v74544; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]4545;4546; GFX11-SDAG-LABEL: v_minimumnum_v8f16:4547; GFX11-SDAG: ; %bb.0:4548; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4549; GFX11-SDAG-NEXT: v_pk_max_f16 v4, v4, v44550; GFX11-SDAG-NEXT: v_pk_max_f16 v0, v0, v04551; GFX11-SDAG-NEXT: v_pk_max_f16 v5, v5, v54552; GFX11-SDAG-NEXT: v_pk_max_f16 v1, v1, v14553; GFX11-SDAG-NEXT: v_pk_max_f16 v6, v6, v64554; GFX11-SDAG-NEXT: v_pk_max_f16 v2, v2, v24555; GFX11-SDAG-NEXT: v_pk_max_f16 v7, v7, v74556; GFX11-SDAG-NEXT: v_pk_max_f16 v3, v3, v34557; GFX11-SDAG-NEXT: v_pk_min_f16 v0, v0, v44558; GFX11-SDAG-NEXT: v_pk_min_f16 v1, v1, v54559; GFX11-SDAG-NEXT: v_pk_min_f16 v2, v2, v64560; GFX11-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_4)4561; GFX11-SDAG-NEXT: v_pk_min_f16 v3, v3, v74562; GFX11-SDAG-NEXT: s_setpc_b64 s[30:31]4563;4564; GFX11-GISEL-LABEL: v_minimumnum_v8f16:4565; GFX11-GISEL: ; %bb.0:4566; GFX11-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4567; GFX11-GISEL-NEXT: v_pk_max_f16 v0, v0, v04568; GFX11-GISEL-NEXT: v_pk_max_f16 v4, v4, v44569; GFX11-GISEL-NEXT: v_pk_max_f16 v1, v1, v14570; GFX11-GISEL-NEXT: v_pk_max_f16 v5, v5, v54571; GFX11-GISEL-NEXT: v_pk_max_f16 v2, v2, v24572; GFX11-GISEL-NEXT: v_pk_max_f16 v6, v6, v64573; GFX11-GISEL-NEXT: v_pk_max_f16 v3, v3, v34574; GFX11-GISEL-NEXT: v_pk_max_f16 v7, v7, v74575; GFX11-GISEL-NEXT: v_pk_min_f16 v0, v0, v44576; GFX11-GISEL-NEXT: v_pk_min_f16 v1, v1, v54577; GFX11-GISEL-NEXT: v_pk_min_f16 v2, v2, v64578; GFX11-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_4)4579; GFX11-GISEL-NEXT: v_pk_min_f16 v3, v3, v74580; GFX11-GISEL-NEXT: s_setpc_b64 s[30:31]4581;4582; GFX12-SDAG-LABEL: v_minimumnum_v8f16:4583; GFX12-SDAG: ; %bb.0:4584; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x04585; GFX12-SDAG-NEXT: s_wait_expcnt 0x04586; GFX12-SDAG-NEXT: s_wait_samplecnt 0x04587; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x04588; GFX12-SDAG-NEXT: s_wait_kmcnt 0x04589; GFX12-SDAG-NEXT: v_pk_max_num_f16 v4, v4, v44590; GFX12-SDAG-NEXT: v_pk_max_num_f16 v0, v0, v04591; GFX12-SDAG-NEXT: v_pk_max_num_f16 v5, v5, v54592; GFX12-SDAG-NEXT: v_pk_max_num_f16 v1, v1, v14593; GFX12-SDAG-NEXT: v_pk_max_num_f16 v6, v6, v64594; GFX12-SDAG-NEXT: v_pk_max_num_f16 v2, v2, v24595; GFX12-SDAG-NEXT: v_pk_max_num_f16 v7, v7, v74596; GFX12-SDAG-NEXT: v_pk_max_num_f16 v3, v3, v34597; GFX12-SDAG-NEXT: v_pk_min_num_f16 v0, v0, v44598; GFX12-SDAG-NEXT: v_pk_min_num_f16 v1, v1, v54599; GFX12-SDAG-NEXT: v_pk_min_num_f16 v2, v2, v64600; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_4)4601; GFX12-SDAG-NEXT: v_pk_min_num_f16 v3, v3, v74602; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]4603;4604; GFX12-GISEL-LABEL: v_minimumnum_v8f16:4605; GFX12-GISEL: ; %bb.0:4606; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x04607; GFX12-GISEL-NEXT: s_wait_expcnt 0x04608; GFX12-GISEL-NEXT: s_wait_samplecnt 0x04609; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x04610; GFX12-GISEL-NEXT: s_wait_kmcnt 0x04611; GFX12-GISEL-NEXT: v_pk_max_num_f16 v0, v0, v04612; GFX12-GISEL-NEXT: v_pk_max_num_f16 v4, v4, v44613; GFX12-GISEL-NEXT: v_pk_max_num_f16 v1, v1, v14614; GFX12-GISEL-NEXT: v_pk_max_num_f16 v5, v5, v54615; GFX12-GISEL-NEXT: v_pk_max_num_f16 v2, v2, v24616; GFX12-GISEL-NEXT: v_pk_max_num_f16 v6, v6, v64617; GFX12-GISEL-NEXT: v_pk_max_num_f16 v3, v3, v34618; GFX12-GISEL-NEXT: v_pk_max_num_f16 v7, v7, v74619; GFX12-GISEL-NEXT: v_pk_min_num_f16 v0, v0, v44620; GFX12-GISEL-NEXT: v_pk_min_num_f16 v1, v1, v54621; GFX12-GISEL-NEXT: v_pk_min_num_f16 v2, v2, v64622; GFX12-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_4)4623; GFX12-GISEL-NEXT: v_pk_min_num_f16 v3, v3, v74624; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]4625 %result = call <8 x half> @llvm.minimumnum.v8f16(<8 x half> %x, <8 x half> %y)4626 ret <8 x half> %result4627}4628 4629define <16 x half> @v_minimumnum_v16f16(<16 x half> %x, <16 x half> %y) {4630; GFX7-SDAG-LABEL: v_minimumnum_v16f16:4631; GFX7-SDAG: ; %bb.0:4632; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4633; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v04634; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v16, v164635; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v1, v14636; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v2, v24637; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v04638; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v16, v164639; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v1, v14640; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v2, v24641; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v3, v34642; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v164643; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v16, v174644; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v4, v44645; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v3, v34646; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v17, v204647; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v16, v164648; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v5, v54649; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v6, v64650; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v4, v44651; GFX7-SDAG-NEXT: v_min_f32_e32 v1, v1, v164652; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v16, v184653; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v18, v214654; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v17, v174655; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v5, v54656; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v16, v164657; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v18, v184658; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v6, v64659; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v7, v74660; GFX7-SDAG-NEXT: v_min_f32_e32 v2, v2, v164661; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v16, v194662; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v19, v224663; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v20, v234664; GFX7-SDAG-NEXT: v_min_f32_e32 v4, v4, v174665; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v16, v164666; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v19, v194667; GFX7-SDAG-NEXT: v_min_f32_e32 v5, v5, v184668; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v8, v84669; GFX7-SDAG-NEXT: v_min_f32_e32 v3, v3, v164670; GFX7-SDAG-NEXT: buffer_load_dword v16, off, s[0:3], s324671; GFX7-SDAG-NEXT: v_min_f32_e32 v6, v6, v194672; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v17, v244673; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v9, v94674; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v18, v254675; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v10, v104676; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v19, v264677; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v7, v74678; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v20, v204679; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v8, v84680; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v17, v174681; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v9, v94682; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v18, v184683; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v10, v104684; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v19, v194685; GFX7-SDAG-NEXT: v_min_f32_e32 v7, v7, v204686; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v11, v114687; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v20, v274688; GFX7-SDAG-NEXT: v_min_f32_e32 v8, v8, v174689; GFX7-SDAG-NEXT: v_min_f32_e32 v9, v9, v184690; GFX7-SDAG-NEXT: v_min_f32_e32 v10, v10, v194691; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v12, v124692; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v17, v284693; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v13, v134694; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v18, v294695; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v14, v144696; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v19, v304697; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v15, v154698; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v11, v114699; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v20, v204700; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v12, v124701; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v17, v174702; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v13, v134703; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v18, v184704; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v14, v144705; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v19, v194706; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v15, v154707; GFX7-SDAG-NEXT: v_min_f32_e32 v11, v11, v204708; GFX7-SDAG-NEXT: v_min_f32_e32 v12, v12, v174709; GFX7-SDAG-NEXT: v_min_f32_e32 v13, v13, v184710; GFX7-SDAG-NEXT: v_min_f32_e32 v14, v14, v194711; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)4712; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v16, v164713; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v16, v164714; GFX7-SDAG-NEXT: v_min_f32_e32 v15, v15, v164715; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]4716;4717; GFX7-GISEL-LABEL: v_minimumnum_v16f16:4718; GFX7-GISEL: ; %bb.0:4719; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4720; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v0, v04721; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v16, v164722; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v1, v14723; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v2, v24724; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v3, v34725; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v164726; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v16, v174727; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v4, v44728; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v17, v204729; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v5, v54730; GFX7-GISEL-NEXT: v_min_f32_e32 v1, v1, v164731; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v16, v184732; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v18, v214733; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v6, v64734; GFX7-GISEL-NEXT: v_min_f32_e32 v4, v4, v174735; GFX7-GISEL-NEXT: v_min_f32_e32 v2, v2, v164736; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v16, v194737; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v19, v224738; GFX7-GISEL-NEXT: v_min_f32_e32 v5, v5, v184739; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v7, v74740; GFX7-GISEL-NEXT: v_min_f32_e32 v3, v3, v164741; GFX7-GISEL-NEXT: buffer_load_dword v16, off, s[0:3], s324742; GFX7-GISEL-NEXT: v_min_f32_e32 v6, v6, v194743; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v17, v234744; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v8, v84745; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v18, v244746; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v9, v94747; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v19, v254748; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v10, v104749; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v20, v264750; GFX7-GISEL-NEXT: v_min_f32_e32 v7, v7, v174751; GFX7-GISEL-NEXT: v_min_f32_e32 v8, v8, v184752; GFX7-GISEL-NEXT: v_min_f32_e32 v9, v9, v194753; GFX7-GISEL-NEXT: v_min_f32_e32 v10, v10, v204754; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v11, v114755; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v17, v274756; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v12, v124757; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v18, v284758; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v13, v134759; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v19, v294760; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v14, v144761; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v20, v304762; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v15, v154763; GFX7-GISEL-NEXT: v_min_f32_e32 v11, v11, v174764; GFX7-GISEL-NEXT: v_min_f32_e32 v12, v12, v184765; GFX7-GISEL-NEXT: v_min_f32_e32 v13, v13, v194766; GFX7-GISEL-NEXT: v_min_f32_e32 v14, v14, v204767; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v0, v04768; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v1, v14769; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v2, v24770; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v3, v34771; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v4, v44772; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v5, v54773; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v6, v64774; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v7, v74775; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v8, v84776; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v9, v94777; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v10, v104778; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v11, v114779; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v12, v124780; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v13, v134781; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v14, v144782; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)4783; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v16, v164784; GFX7-GISEL-NEXT: v_min_f32_e32 v15, v15, v164785; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v15, v154786; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]4787;4788; GFX8-SDAG-LABEL: v_minimumnum_v16f16:4789; GFX8-SDAG: ; %bb.0:4790; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4791; GFX8-SDAG-NEXT: v_max_f16_sdwa v16, v15, v15 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14792; GFX8-SDAG-NEXT: v_max_f16_sdwa v17, v7, v7 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14793; GFX8-SDAG-NEXT: v_min_f16_sdwa v16, v17, v16 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4794; GFX8-SDAG-NEXT: v_max_f16_sdwa v17, v14, v14 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14795; GFX8-SDAG-NEXT: v_max_f16_sdwa v18, v6, v6 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14796; GFX8-SDAG-NEXT: v_min_f16_sdwa v17, v18, v17 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4797; GFX8-SDAG-NEXT: v_max_f16_sdwa v18, v13, v13 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14798; GFX8-SDAG-NEXT: v_max_f16_sdwa v19, v5, v5 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14799; GFX8-SDAG-NEXT: v_min_f16_sdwa v18, v19, v18 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4800; GFX8-SDAG-NEXT: v_max_f16_sdwa v19, v12, v12 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14801; GFX8-SDAG-NEXT: v_max_f16_sdwa v20, v4, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14802; GFX8-SDAG-NEXT: v_min_f16_sdwa v19, v20, v19 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4803; GFX8-SDAG-NEXT: v_max_f16_sdwa v20, v11, v11 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14804; GFX8-SDAG-NEXT: v_max_f16_sdwa v21, v3, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14805; GFX8-SDAG-NEXT: v_min_f16_sdwa v20, v21, v20 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4806; GFX8-SDAG-NEXT: v_max_f16_sdwa v21, v10, v10 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14807; GFX8-SDAG-NEXT: v_max_f16_sdwa v22, v2, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14808; GFX8-SDAG-NEXT: v_min_f16_sdwa v21, v22, v21 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4809; GFX8-SDAG-NEXT: v_max_f16_sdwa v22, v9, v9 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14810; GFX8-SDAG-NEXT: v_max_f16_sdwa v23, v1, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14811; GFX8-SDAG-NEXT: v_min_f16_sdwa v22, v23, v22 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4812; GFX8-SDAG-NEXT: v_max_f16_sdwa v23, v8, v8 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14813; GFX8-SDAG-NEXT: v_max_f16_sdwa v24, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14814; GFX8-SDAG-NEXT: v_max_f16_e32 v15, v15, v154815; GFX8-SDAG-NEXT: v_max_f16_e32 v7, v7, v74816; GFX8-SDAG-NEXT: v_max_f16_e32 v14, v14, v144817; GFX8-SDAG-NEXT: v_max_f16_e32 v6, v6, v64818; GFX8-SDAG-NEXT: v_max_f16_e32 v13, v13, v134819; GFX8-SDAG-NEXT: v_max_f16_e32 v5, v5, v54820; GFX8-SDAG-NEXT: v_max_f16_e32 v12, v12, v124821; GFX8-SDAG-NEXT: v_max_f16_e32 v4, v4, v44822; GFX8-SDAG-NEXT: v_max_f16_e32 v11, v11, v114823; GFX8-SDAG-NEXT: v_max_f16_e32 v3, v3, v34824; GFX8-SDAG-NEXT: v_max_f16_e32 v10, v10, v104825; GFX8-SDAG-NEXT: v_max_f16_e32 v2, v2, v24826; GFX8-SDAG-NEXT: v_max_f16_e32 v9, v9, v94827; GFX8-SDAG-NEXT: v_max_f16_e32 v1, v1, v14828; GFX8-SDAG-NEXT: v_max_f16_e32 v8, v8, v84829; GFX8-SDAG-NEXT: v_max_f16_e32 v0, v0, v04830; GFX8-SDAG-NEXT: v_min_f16_sdwa v23, v24, v23 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4831; GFX8-SDAG-NEXT: v_min_f16_e32 v7, v7, v154832; GFX8-SDAG-NEXT: v_min_f16_e32 v6, v6, v144833; GFX8-SDAG-NEXT: v_min_f16_e32 v5, v5, v134834; GFX8-SDAG-NEXT: v_min_f16_e32 v4, v4, v124835; GFX8-SDAG-NEXT: v_min_f16_e32 v3, v3, v114836; GFX8-SDAG-NEXT: v_min_f16_e32 v2, v2, v104837; GFX8-SDAG-NEXT: v_min_f16_e32 v1, v1, v94838; GFX8-SDAG-NEXT: v_min_f16_e32 v0, v0, v84839; GFX8-SDAG-NEXT: v_or_b32_e32 v0, v0, v234840; GFX8-SDAG-NEXT: v_or_b32_e32 v1, v1, v224841; GFX8-SDAG-NEXT: v_or_b32_e32 v2, v2, v214842; GFX8-SDAG-NEXT: v_or_b32_e32 v3, v3, v204843; GFX8-SDAG-NEXT: v_or_b32_e32 v4, v4, v194844; GFX8-SDAG-NEXT: v_or_b32_e32 v5, v5, v184845; GFX8-SDAG-NEXT: v_or_b32_e32 v6, v6, v174846; GFX8-SDAG-NEXT: v_or_b32_e32 v7, v7, v164847; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]4848;4849; GFX8-GISEL-LABEL: v_minimumnum_v16f16:4850; GFX8-GISEL: ; %bb.0:4851; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4852; GFX8-GISEL-NEXT: v_max_f16_e32 v16, v0, v04853; GFX8-GISEL-NEXT: v_max_f16_e32 v17, v8, v84854; GFX8-GISEL-NEXT: v_max_f16_sdwa v0, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14855; GFX8-GISEL-NEXT: v_max_f16_sdwa v8, v8, v8 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14856; GFX8-GISEL-NEXT: v_min_f16_e32 v16, v16, v174857; GFX8-GISEL-NEXT: v_min_f16_sdwa v0, v0, v8 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4858; GFX8-GISEL-NEXT: v_max_f16_e32 v8, v1, v14859; GFX8-GISEL-NEXT: v_max_f16_e32 v17, v9, v94860; GFX8-GISEL-NEXT: v_max_f16_sdwa v1, v1, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14861; GFX8-GISEL-NEXT: v_max_f16_sdwa v9, v9, v9 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14862; GFX8-GISEL-NEXT: v_min_f16_e32 v8, v8, v174863; GFX8-GISEL-NEXT: v_min_f16_sdwa v1, v1, v9 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4864; GFX8-GISEL-NEXT: v_max_f16_e32 v9, v2, v24865; GFX8-GISEL-NEXT: v_max_f16_e32 v17, v10, v104866; GFX8-GISEL-NEXT: v_max_f16_sdwa v2, v2, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14867; GFX8-GISEL-NEXT: v_max_f16_sdwa v10, v10, v10 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14868; GFX8-GISEL-NEXT: v_min_f16_e32 v9, v9, v174869; GFX8-GISEL-NEXT: v_min_f16_sdwa v2, v2, v10 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4870; GFX8-GISEL-NEXT: v_max_f16_e32 v10, v3, v34871; GFX8-GISEL-NEXT: v_max_f16_e32 v17, v11, v114872; GFX8-GISEL-NEXT: v_max_f16_sdwa v3, v3, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14873; GFX8-GISEL-NEXT: v_max_f16_sdwa v11, v11, v11 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14874; GFX8-GISEL-NEXT: v_min_f16_e32 v10, v10, v174875; GFX8-GISEL-NEXT: v_min_f16_sdwa v3, v3, v11 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4876; GFX8-GISEL-NEXT: v_max_f16_e32 v11, v4, v44877; GFX8-GISEL-NEXT: v_max_f16_e32 v17, v12, v124878; GFX8-GISEL-NEXT: v_max_f16_sdwa v4, v4, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14879; GFX8-GISEL-NEXT: v_max_f16_sdwa v12, v12, v12 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14880; GFX8-GISEL-NEXT: v_min_f16_e32 v11, v11, v174881; GFX8-GISEL-NEXT: v_min_f16_sdwa v4, v4, v12 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4882; GFX8-GISEL-NEXT: v_max_f16_e32 v12, v5, v54883; GFX8-GISEL-NEXT: v_max_f16_e32 v17, v13, v134884; GFX8-GISEL-NEXT: v_max_f16_sdwa v5, v5, v5 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14885; GFX8-GISEL-NEXT: v_max_f16_sdwa v13, v13, v13 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14886; GFX8-GISEL-NEXT: v_min_f16_e32 v12, v12, v174887; GFX8-GISEL-NEXT: v_min_f16_sdwa v5, v5, v13 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4888; GFX8-GISEL-NEXT: v_max_f16_e32 v13, v6, v64889; GFX8-GISEL-NEXT: v_max_f16_e32 v17, v14, v144890; GFX8-GISEL-NEXT: v_max_f16_sdwa v6, v6, v6 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14891; GFX8-GISEL-NEXT: v_max_f16_sdwa v14, v14, v14 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14892; GFX8-GISEL-NEXT: v_min_f16_e32 v13, v13, v174893; GFX8-GISEL-NEXT: v_min_f16_sdwa v6, v6, v14 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4894; GFX8-GISEL-NEXT: v_max_f16_e32 v14, v7, v74895; GFX8-GISEL-NEXT: v_max_f16_e32 v17, v15, v154896; GFX8-GISEL-NEXT: v_max_f16_sdwa v7, v7, v7 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14897; GFX8-GISEL-NEXT: v_max_f16_sdwa v15, v15, v15 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_14898; GFX8-GISEL-NEXT: v_min_f16_e32 v14, v14, v174899; GFX8-GISEL-NEXT: v_min_f16_sdwa v7, v7, v15 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4900; GFX8-GISEL-NEXT: v_or_b32_e32 v0, v16, v04901; GFX8-GISEL-NEXT: v_or_b32_e32 v1, v8, v14902; GFX8-GISEL-NEXT: v_or_b32_e32 v2, v9, v24903; GFX8-GISEL-NEXT: v_or_b32_e32 v3, v10, v34904; GFX8-GISEL-NEXT: v_or_b32_e32 v4, v11, v44905; GFX8-GISEL-NEXT: v_or_b32_e32 v5, v12, v54906; GFX8-GISEL-NEXT: v_or_b32_e32 v6, v13, v64907; GFX8-GISEL-NEXT: v_or_b32_e32 v7, v14, v74908; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]4909;4910; GFX900-SDAG-LABEL: v_minimumnum_v16f16:4911; GFX900-SDAG: ; %bb.0:4912; GFX900-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4913; GFX900-SDAG-NEXT: v_pk_max_f16 v8, v8, v84914; GFX900-SDAG-NEXT: v_pk_max_f16 v0, v0, v04915; GFX900-SDAG-NEXT: v_pk_min_f16 v0, v0, v84916; GFX900-SDAG-NEXT: v_pk_max_f16 v8, v9, v94917; GFX900-SDAG-NEXT: v_pk_max_f16 v1, v1, v14918; GFX900-SDAG-NEXT: v_pk_min_f16 v1, v1, v84919; GFX900-SDAG-NEXT: v_pk_max_f16 v8, v10, v104920; GFX900-SDAG-NEXT: v_pk_max_f16 v2, v2, v24921; GFX900-SDAG-NEXT: v_pk_min_f16 v2, v2, v84922; GFX900-SDAG-NEXT: v_pk_max_f16 v8, v11, v114923; GFX900-SDAG-NEXT: v_pk_max_f16 v3, v3, v34924; GFX900-SDAG-NEXT: v_pk_min_f16 v3, v3, v84925; GFX900-SDAG-NEXT: v_pk_max_f16 v8, v12, v124926; GFX900-SDAG-NEXT: v_pk_max_f16 v4, v4, v44927; GFX900-SDAG-NEXT: v_pk_min_f16 v4, v4, v84928; GFX900-SDAG-NEXT: v_pk_max_f16 v8, v13, v134929; GFX900-SDAG-NEXT: v_pk_max_f16 v5, v5, v54930; GFX900-SDAG-NEXT: v_pk_min_f16 v5, v5, v84931; GFX900-SDAG-NEXT: v_pk_max_f16 v8, v14, v144932; GFX900-SDAG-NEXT: v_pk_max_f16 v6, v6, v64933; GFX900-SDAG-NEXT: v_pk_min_f16 v6, v6, v84934; GFX900-SDAG-NEXT: v_pk_max_f16 v8, v15, v154935; GFX900-SDAG-NEXT: v_pk_max_f16 v7, v7, v74936; GFX900-SDAG-NEXT: v_pk_min_f16 v7, v7, v84937; GFX900-SDAG-NEXT: s_setpc_b64 s[30:31]4938;4939; GFX900-GISEL-LABEL: v_minimumnum_v16f16:4940; GFX900-GISEL: ; %bb.0:4941; GFX900-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4942; GFX900-GISEL-NEXT: v_pk_max_f16 v0, v0, v04943; GFX900-GISEL-NEXT: v_pk_max_f16 v8, v8, v84944; GFX900-GISEL-NEXT: v_pk_min_f16 v0, v0, v84945; GFX900-GISEL-NEXT: v_pk_max_f16 v1, v1, v14946; GFX900-GISEL-NEXT: v_pk_max_f16 v8, v9, v94947; GFX900-GISEL-NEXT: v_pk_min_f16 v1, v1, v84948; GFX900-GISEL-NEXT: v_pk_max_f16 v2, v2, v24949; GFX900-GISEL-NEXT: v_pk_max_f16 v8, v10, v104950; GFX900-GISEL-NEXT: v_pk_min_f16 v2, v2, v84951; GFX900-GISEL-NEXT: v_pk_max_f16 v3, v3, v34952; GFX900-GISEL-NEXT: v_pk_max_f16 v8, v11, v114953; GFX900-GISEL-NEXT: v_pk_min_f16 v3, v3, v84954; GFX900-GISEL-NEXT: v_pk_max_f16 v4, v4, v44955; GFX900-GISEL-NEXT: v_pk_max_f16 v8, v12, v124956; GFX900-GISEL-NEXT: v_pk_min_f16 v4, v4, v84957; GFX900-GISEL-NEXT: v_pk_max_f16 v5, v5, v54958; GFX900-GISEL-NEXT: v_pk_max_f16 v8, v13, v134959; GFX900-GISEL-NEXT: v_pk_min_f16 v5, v5, v84960; GFX900-GISEL-NEXT: v_pk_max_f16 v6, v6, v64961; GFX900-GISEL-NEXT: v_pk_max_f16 v8, v14, v144962; GFX900-GISEL-NEXT: v_pk_min_f16 v6, v6, v84963; GFX900-GISEL-NEXT: v_pk_max_f16 v7, v7, v74964; GFX900-GISEL-NEXT: v_pk_max_f16 v8, v15, v154965; GFX900-GISEL-NEXT: v_pk_min_f16 v7, v7, v84966; GFX900-GISEL-NEXT: s_setpc_b64 s[30:31]4967;4968; GFX950-SDAG-LABEL: v_minimumnum_v16f16:4969; GFX950-SDAG: ; %bb.0:4970; GFX950-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4971; GFX950-SDAG-NEXT: v_pk_max_f16 v8, v8, v84972; GFX950-SDAG-NEXT: v_pk_max_f16 v0, v0, v04973; GFX950-SDAG-NEXT: v_pk_max_f16 v1, v1, v14974; GFX950-SDAG-NEXT: v_pk_min_f16 v0, v0, v84975; GFX950-SDAG-NEXT: v_pk_max_f16 v8, v9, v94976; GFX950-SDAG-NEXT: v_pk_max_f16 v2, v2, v24977; GFX950-SDAG-NEXT: v_pk_min_f16 v1, v1, v84978; GFX950-SDAG-NEXT: v_pk_max_f16 v8, v10, v104979; GFX950-SDAG-NEXT: v_pk_max_f16 v3, v3, v34980; GFX950-SDAG-NEXT: v_pk_min_f16 v2, v2, v84981; GFX950-SDAG-NEXT: v_pk_max_f16 v8, v11, v114982; GFX950-SDAG-NEXT: v_pk_max_f16 v4, v4, v44983; GFX950-SDAG-NEXT: v_pk_min_f16 v3, v3, v84984; GFX950-SDAG-NEXT: v_pk_max_f16 v8, v12, v124985; GFX950-SDAG-NEXT: v_pk_max_f16 v5, v5, v54986; GFX950-SDAG-NEXT: v_pk_min_f16 v4, v4, v84987; GFX950-SDAG-NEXT: v_pk_max_f16 v8, v13, v134988; GFX950-SDAG-NEXT: v_pk_max_f16 v6, v6, v64989; GFX950-SDAG-NEXT: v_pk_min_f16 v5, v5, v84990; GFX950-SDAG-NEXT: v_pk_max_f16 v8, v14, v144991; GFX950-SDAG-NEXT: v_pk_max_f16 v7, v7, v74992; GFX950-SDAG-NEXT: v_pk_min_f16 v6, v6, v84993; GFX950-SDAG-NEXT: v_pk_max_f16 v8, v15, v154994; GFX950-SDAG-NEXT: s_nop 04995; GFX950-SDAG-NEXT: v_pk_min_f16 v7, v7, v84996; GFX950-SDAG-NEXT: s_setpc_b64 s[30:31]4997;4998; GFX950-GISEL-LABEL: v_minimumnum_v16f16:4999; GFX950-GISEL: ; %bb.0:5000; GFX950-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5001; GFX950-GISEL-NEXT: v_pk_max_f16 v0, v0, v05002; GFX950-GISEL-NEXT: v_pk_max_f16 v8, v8, v85003; GFX950-GISEL-NEXT: v_pk_max_f16 v1, v1, v15004; GFX950-GISEL-NEXT: v_pk_min_f16 v0, v0, v85005; GFX950-GISEL-NEXT: v_pk_max_f16 v8, v9, v95006; GFX950-GISEL-NEXT: v_pk_max_f16 v2, v2, v25007; GFX950-GISEL-NEXT: v_pk_min_f16 v1, v1, v85008; GFX950-GISEL-NEXT: v_pk_max_f16 v8, v10, v105009; GFX950-GISEL-NEXT: v_pk_max_f16 v3, v3, v35010; GFX950-GISEL-NEXT: v_pk_min_f16 v2, v2, v85011; GFX950-GISEL-NEXT: v_pk_max_f16 v8, v11, v115012; GFX950-GISEL-NEXT: v_pk_max_f16 v4, v4, v45013; GFX950-GISEL-NEXT: v_pk_min_f16 v3, v3, v85014; GFX950-GISEL-NEXT: v_pk_max_f16 v8, v12, v125015; GFX950-GISEL-NEXT: v_pk_max_f16 v5, v5, v55016; GFX950-GISEL-NEXT: v_pk_min_f16 v4, v4, v85017; GFX950-GISEL-NEXT: v_pk_max_f16 v8, v13, v135018; GFX950-GISEL-NEXT: v_pk_max_f16 v6, v6, v65019; GFX950-GISEL-NEXT: v_pk_min_f16 v5, v5, v85020; GFX950-GISEL-NEXT: v_pk_max_f16 v8, v14, v145021; GFX950-GISEL-NEXT: v_pk_max_f16 v7, v7, v75022; GFX950-GISEL-NEXT: v_pk_min_f16 v6, v6, v85023; GFX950-GISEL-NEXT: v_pk_max_f16 v8, v15, v155024; GFX950-GISEL-NEXT: s_nop 05025; GFX950-GISEL-NEXT: v_pk_min_f16 v7, v7, v85026; GFX950-GISEL-NEXT: s_setpc_b64 s[30:31]5027;5028; GFX10-SDAG-LABEL: v_minimumnum_v16f16:5029; GFX10-SDAG: ; %bb.0:5030; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5031; GFX10-SDAG-NEXT: v_pk_max_f16 v8, v8, v85032; GFX10-SDAG-NEXT: v_pk_max_f16 v0, v0, v05033; GFX10-SDAG-NEXT: v_pk_max_f16 v9, v9, v95034; GFX10-SDAG-NEXT: v_pk_max_f16 v1, v1, v15035; GFX10-SDAG-NEXT: v_pk_max_f16 v10, v10, v105036; GFX10-SDAG-NEXT: v_pk_max_f16 v2, v2, v25037; GFX10-SDAG-NEXT: v_pk_min_f16 v0, v0, v85038; GFX10-SDAG-NEXT: v_pk_max_f16 v8, v11, v115039; GFX10-SDAG-NEXT: v_pk_min_f16 v1, v1, v95040; GFX10-SDAG-NEXT: v_pk_max_f16 v3, v3, v35041; GFX10-SDAG-NEXT: v_pk_min_f16 v2, v2, v105042; GFX10-SDAG-NEXT: v_pk_max_f16 v9, v12, v125043; GFX10-SDAG-NEXT: v_pk_max_f16 v4, v4, v45044; GFX10-SDAG-NEXT: v_pk_max_f16 v10, v13, v135045; GFX10-SDAG-NEXT: v_pk_max_f16 v5, v5, v55046; GFX10-SDAG-NEXT: v_pk_max_f16 v11, v14, v145047; GFX10-SDAG-NEXT: v_pk_max_f16 v6, v6, v65048; GFX10-SDAG-NEXT: v_pk_max_f16 v12, v15, v155049; GFX10-SDAG-NEXT: v_pk_max_f16 v7, v7, v75050; GFX10-SDAG-NEXT: v_pk_min_f16 v3, v3, v85051; GFX10-SDAG-NEXT: v_pk_min_f16 v4, v4, v95052; GFX10-SDAG-NEXT: v_pk_min_f16 v5, v5, v105053; GFX10-SDAG-NEXT: v_pk_min_f16 v6, v6, v115054; GFX10-SDAG-NEXT: v_pk_min_f16 v7, v7, v125055; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]5056;5057; GFX10-GISEL-LABEL: v_minimumnum_v16f16:5058; GFX10-GISEL: ; %bb.0:5059; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5060; GFX10-GISEL-NEXT: v_pk_max_f16 v0, v0, v05061; GFX10-GISEL-NEXT: v_pk_max_f16 v8, v8, v85062; GFX10-GISEL-NEXT: v_pk_max_f16 v1, v1, v15063; GFX10-GISEL-NEXT: v_pk_max_f16 v9, v9, v95064; GFX10-GISEL-NEXT: v_pk_max_f16 v2, v2, v25065; GFX10-GISEL-NEXT: v_pk_max_f16 v10, v10, v105066; GFX10-GISEL-NEXT: v_pk_min_f16 v0, v0, v85067; GFX10-GISEL-NEXT: v_pk_max_f16 v3, v3, v35068; GFX10-GISEL-NEXT: v_pk_min_f16 v1, v1, v95069; GFX10-GISEL-NEXT: v_pk_max_f16 v8, v11, v115070; GFX10-GISEL-NEXT: v_pk_min_f16 v2, v2, v105071; GFX10-GISEL-NEXT: v_pk_max_f16 v4, v4, v45072; GFX10-GISEL-NEXT: v_pk_max_f16 v9, v12, v125073; GFX10-GISEL-NEXT: v_pk_max_f16 v5, v5, v55074; GFX10-GISEL-NEXT: v_pk_max_f16 v10, v13, v135075; GFX10-GISEL-NEXT: v_pk_max_f16 v6, v6, v65076; GFX10-GISEL-NEXT: v_pk_max_f16 v11, v14, v145077; GFX10-GISEL-NEXT: v_pk_max_f16 v7, v7, v75078; GFX10-GISEL-NEXT: v_pk_max_f16 v12, v15, v155079; GFX10-GISEL-NEXT: v_pk_min_f16 v3, v3, v85080; GFX10-GISEL-NEXT: v_pk_min_f16 v4, v4, v95081; GFX10-GISEL-NEXT: v_pk_min_f16 v5, v5, v105082; GFX10-GISEL-NEXT: v_pk_min_f16 v6, v6, v115083; GFX10-GISEL-NEXT: v_pk_min_f16 v7, v7, v125084; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]5085;5086; GFX11-SDAG-LABEL: v_minimumnum_v16f16:5087; GFX11-SDAG: ; %bb.0:5088; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5089; GFX11-SDAG-NEXT: v_pk_max_f16 v8, v8, v85090; GFX11-SDAG-NEXT: v_pk_max_f16 v0, v0, v05091; GFX11-SDAG-NEXT: v_pk_max_f16 v9, v9, v95092; GFX11-SDAG-NEXT: v_pk_max_f16 v1, v1, v15093; GFX11-SDAG-NEXT: v_pk_max_f16 v10, v10, v105094; GFX11-SDAG-NEXT: v_pk_max_f16 v2, v2, v25095; GFX11-SDAG-NEXT: v_pk_min_f16 v0, v0, v85096; GFX11-SDAG-NEXT: v_pk_max_f16 v8, v11, v115097; GFX11-SDAG-NEXT: v_pk_min_f16 v1, v1, v95098; GFX11-SDAG-NEXT: v_pk_max_f16 v3, v3, v35099; GFX11-SDAG-NEXT: v_pk_min_f16 v2, v2, v105100; GFX11-SDAG-NEXT: v_pk_max_f16 v9, v12, v125101; GFX11-SDAG-NEXT: v_pk_max_f16 v4, v4, v45102; GFX11-SDAG-NEXT: v_pk_max_f16 v10, v13, v135103; GFX11-SDAG-NEXT: v_pk_max_f16 v5, v5, v55104; GFX11-SDAG-NEXT: v_pk_max_f16 v11, v14, v145105; GFX11-SDAG-NEXT: v_pk_max_f16 v6, v6, v65106; GFX11-SDAG-NEXT: v_pk_max_f16 v12, v15, v155107; GFX11-SDAG-NEXT: v_pk_max_f16 v7, v7, v75108; GFX11-SDAG-NEXT: v_pk_min_f16 v3, v3, v85109; GFX11-SDAG-NEXT: v_pk_min_f16 v4, v4, v95110; GFX11-SDAG-NEXT: v_pk_min_f16 v5, v5, v105111; GFX11-SDAG-NEXT: v_pk_min_f16 v6, v6, v115112; GFX11-SDAG-NEXT: v_pk_min_f16 v7, v7, v125113; GFX11-SDAG-NEXT: s_setpc_b64 s[30:31]5114;5115; GFX11-GISEL-LABEL: v_minimumnum_v16f16:5116; GFX11-GISEL: ; %bb.0:5117; GFX11-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5118; GFX11-GISEL-NEXT: v_pk_max_f16 v0, v0, v05119; GFX11-GISEL-NEXT: v_pk_max_f16 v8, v8, v85120; GFX11-GISEL-NEXT: v_pk_max_f16 v1, v1, v15121; GFX11-GISEL-NEXT: v_pk_max_f16 v9, v9, v95122; GFX11-GISEL-NEXT: v_pk_max_f16 v2, v2, v25123; GFX11-GISEL-NEXT: v_pk_max_f16 v10, v10, v105124; GFX11-GISEL-NEXT: v_pk_min_f16 v0, v0, v85125; GFX11-GISEL-NEXT: v_pk_max_f16 v3, v3, v35126; GFX11-GISEL-NEXT: v_pk_min_f16 v1, v1, v95127; GFX11-GISEL-NEXT: v_pk_max_f16 v8, v11, v115128; GFX11-GISEL-NEXT: v_pk_min_f16 v2, v2, v105129; GFX11-GISEL-NEXT: v_pk_max_f16 v4, v4, v45130; GFX11-GISEL-NEXT: v_pk_max_f16 v9, v12, v125131; GFX11-GISEL-NEXT: v_pk_max_f16 v5, v5, v55132; GFX11-GISEL-NEXT: v_pk_max_f16 v10, v13, v135133; GFX11-GISEL-NEXT: v_pk_max_f16 v6, v6, v65134; GFX11-GISEL-NEXT: v_pk_max_f16 v11, v14, v145135; GFX11-GISEL-NEXT: v_pk_max_f16 v7, v7, v75136; GFX11-GISEL-NEXT: v_pk_max_f16 v12, v15, v155137; GFX11-GISEL-NEXT: v_pk_min_f16 v3, v3, v85138; GFX11-GISEL-NEXT: v_pk_min_f16 v4, v4, v95139; GFX11-GISEL-NEXT: v_pk_min_f16 v5, v5, v105140; GFX11-GISEL-NEXT: v_pk_min_f16 v6, v6, v115141; GFX11-GISEL-NEXT: v_pk_min_f16 v7, v7, v125142; GFX11-GISEL-NEXT: s_setpc_b64 s[30:31]5143;5144; GFX12-SDAG-LABEL: v_minimumnum_v16f16:5145; GFX12-SDAG: ; %bb.0:5146; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x05147; GFX12-SDAG-NEXT: s_wait_expcnt 0x05148; GFX12-SDAG-NEXT: s_wait_samplecnt 0x05149; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x05150; GFX12-SDAG-NEXT: s_wait_kmcnt 0x05151; GFX12-SDAG-NEXT: v_pk_max_num_f16 v8, v8, v85152; GFX12-SDAG-NEXT: v_pk_max_num_f16 v0, v0, v05153; GFX12-SDAG-NEXT: v_pk_max_num_f16 v9, v9, v95154; GFX12-SDAG-NEXT: v_pk_max_num_f16 v1, v1, v15155; GFX12-SDAG-NEXT: v_pk_max_num_f16 v10, v10, v105156; GFX12-SDAG-NEXT: v_pk_max_num_f16 v2, v2, v25157; GFX12-SDAG-NEXT: v_pk_min_num_f16 v0, v0, v85158; GFX12-SDAG-NEXT: v_pk_max_num_f16 v8, v11, v115159; GFX12-SDAG-NEXT: v_pk_min_num_f16 v1, v1, v95160; GFX12-SDAG-NEXT: v_pk_max_num_f16 v3, v3, v35161; GFX12-SDAG-NEXT: v_pk_min_num_f16 v2, v2, v105162; GFX12-SDAG-NEXT: v_pk_max_num_f16 v9, v12, v125163; GFX12-SDAG-NEXT: v_pk_max_num_f16 v4, v4, v45164; GFX12-SDAG-NEXT: v_pk_max_num_f16 v10, v13, v135165; GFX12-SDAG-NEXT: v_pk_max_num_f16 v5, v5, v55166; GFX12-SDAG-NEXT: v_pk_max_num_f16 v11, v14, v145167; GFX12-SDAG-NEXT: v_pk_max_num_f16 v6, v6, v65168; GFX12-SDAG-NEXT: v_pk_max_num_f16 v12, v15, v155169; GFX12-SDAG-NEXT: v_pk_max_num_f16 v7, v7, v75170; GFX12-SDAG-NEXT: v_pk_min_num_f16 v3, v3, v85171; GFX12-SDAG-NEXT: v_pk_min_num_f16 v4, v4, v95172; GFX12-SDAG-NEXT: v_pk_min_num_f16 v5, v5, v105173; GFX12-SDAG-NEXT: v_pk_min_num_f16 v6, v6, v115174; GFX12-SDAG-NEXT: v_pk_min_num_f16 v7, v7, v125175; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]5176;5177; GFX12-GISEL-LABEL: v_minimumnum_v16f16:5178; GFX12-GISEL: ; %bb.0:5179; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x05180; GFX12-GISEL-NEXT: s_wait_expcnt 0x05181; GFX12-GISEL-NEXT: s_wait_samplecnt 0x05182; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x05183; GFX12-GISEL-NEXT: s_wait_kmcnt 0x05184; GFX12-GISEL-NEXT: v_pk_max_num_f16 v0, v0, v05185; GFX12-GISEL-NEXT: v_pk_max_num_f16 v8, v8, v85186; GFX12-GISEL-NEXT: v_pk_max_num_f16 v1, v1, v15187; GFX12-GISEL-NEXT: v_pk_max_num_f16 v9, v9, v95188; GFX12-GISEL-NEXT: v_pk_max_num_f16 v2, v2, v25189; GFX12-GISEL-NEXT: v_pk_max_num_f16 v10, v10, v105190; GFX12-GISEL-NEXT: v_pk_min_num_f16 v0, v0, v85191; GFX12-GISEL-NEXT: v_pk_max_num_f16 v3, v3, v35192; GFX12-GISEL-NEXT: v_pk_min_num_f16 v1, v1, v95193; GFX12-GISEL-NEXT: v_pk_max_num_f16 v8, v11, v115194; GFX12-GISEL-NEXT: v_pk_min_num_f16 v2, v2, v105195; GFX12-GISEL-NEXT: v_pk_max_num_f16 v4, v4, v45196; GFX12-GISEL-NEXT: v_pk_max_num_f16 v9, v12, v125197; GFX12-GISEL-NEXT: v_pk_max_num_f16 v5, v5, v55198; GFX12-GISEL-NEXT: v_pk_max_num_f16 v10, v13, v135199; GFX12-GISEL-NEXT: v_pk_max_num_f16 v6, v6, v65200; GFX12-GISEL-NEXT: v_pk_max_num_f16 v11, v14, v145201; GFX12-GISEL-NEXT: v_pk_max_num_f16 v7, v7, v75202; GFX12-GISEL-NEXT: v_pk_max_num_f16 v12, v15, v155203; GFX12-GISEL-NEXT: v_pk_min_num_f16 v3, v3, v85204; GFX12-GISEL-NEXT: v_pk_min_num_f16 v4, v4, v95205; GFX12-GISEL-NEXT: v_pk_min_num_f16 v5, v5, v105206; GFX12-GISEL-NEXT: v_pk_min_num_f16 v6, v6, v115207; GFX12-GISEL-NEXT: v_pk_min_num_f16 v7, v7, v125208; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]5209 %result = call <16 x half> @llvm.minimumnum.v16f16(<16 x half> %x, <16 x half> %y)5210 ret <16 x half> %result5211}5212 5213define <32 x half> @v_minimumnum_v32f16(<32 x half> %x, <32 x half> %y) {5214; GFX7-SDAG-LABEL: v_minimumnum_v32f16:5215; GFX7-SDAG: ; %bb.0:5216; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5217; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:45218; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v05219; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v1, v15220; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v2, v25221; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v3, v35222; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v05223; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v1, v15224; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v2, v25225; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v3, v35226; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v4, v45227; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v5, v55228; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v6, v65229; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v7, v75230; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v4, v45231; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v5, v55232; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v6, v65233; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v7, v75234; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v8, v85235; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v9, v95236; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v10, v105237; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v11, v115238; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v8, v85239; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v9, v95240; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v10, v105241; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v11, v115242; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v12, v125243; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v13, v135244; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v14, v145245; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v15, v155246; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v12, v125247; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v13, v135248; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v14, v145249; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v15, v155250; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v16, v165251; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v17, v175252; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v18, v185253; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v19, v195254; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v16, v165255; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v17, v175256; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v18, v185257; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v19, v195258; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v20, v205259; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v21, v215260; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v22, v225261; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v23, v235262; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v20, v205263; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v21, v215264; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v22, v225265; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v23, v235266; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v24, v245267; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v25, v255268; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v26, v265269; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v27, v275270; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v24, v245271; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v25, v255272; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v26, v265273; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v27, v275274; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v28, v285275; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v29, v295276; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v30, v305277; GFX7-SDAG-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:1285278; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v28, v285279; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v29, v295280; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v30, v305281; GFX7-SDAG-NEXT: s_waitcnt vmcnt(1)5282; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315283; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315284; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v315285; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:85286; GFX7-SDAG-NEXT: s_waitcnt vmcnt(1)5287; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v32, v325288; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v32, v325289; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5290; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315291; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315292; GFX7-SDAG-NEXT: v_min_f32_e32 v1, v1, v315293; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:125294; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5295; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315296; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315297; GFX7-SDAG-NEXT: v_min_f32_e32 v2, v2, v315298; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:165299; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5300; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315301; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315302; GFX7-SDAG-NEXT: v_min_f32_e32 v3, v3, v315303; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:205304; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5305; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315306; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315307; GFX7-SDAG-NEXT: v_min_f32_e32 v4, v4, v315308; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:245309; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5310; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315311; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315312; GFX7-SDAG-NEXT: v_min_f32_e32 v5, v5, v315313; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:285314; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5315; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315316; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315317; GFX7-SDAG-NEXT: v_min_f32_e32 v6, v6, v315318; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:325319; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5320; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315321; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315322; GFX7-SDAG-NEXT: v_min_f32_e32 v7, v7, v315323; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:365324; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5325; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315326; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315327; GFX7-SDAG-NEXT: v_min_f32_e32 v8, v8, v315328; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:405329; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5330; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315331; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315332; GFX7-SDAG-NEXT: v_min_f32_e32 v9, v9, v315333; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:445334; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5335; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315336; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315337; GFX7-SDAG-NEXT: v_min_f32_e32 v10, v10, v315338; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:485339; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5340; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315341; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315342; GFX7-SDAG-NEXT: v_min_f32_e32 v11, v11, v315343; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:525344; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5345; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315346; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315347; GFX7-SDAG-NEXT: v_min_f32_e32 v12, v12, v315348; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:565349; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5350; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315351; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315352; GFX7-SDAG-NEXT: v_min_f32_e32 v13, v13, v315353; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:605354; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5355; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315356; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315357; GFX7-SDAG-NEXT: v_min_f32_e32 v14, v14, v315358; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:645359; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5360; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315361; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315362; GFX7-SDAG-NEXT: v_min_f32_e32 v15, v15, v315363; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:685364; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5365; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315366; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315367; GFX7-SDAG-NEXT: v_min_f32_e32 v16, v16, v315368; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:725369; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5370; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315371; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315372; GFX7-SDAG-NEXT: v_min_f32_e32 v17, v17, v315373; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:765374; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5375; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315376; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315377; GFX7-SDAG-NEXT: v_min_f32_e32 v18, v18, v315378; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:805379; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5380; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315381; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315382; GFX7-SDAG-NEXT: v_min_f32_e32 v19, v19, v315383; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:845384; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5385; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315386; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315387; GFX7-SDAG-NEXT: v_min_f32_e32 v20, v20, v315388; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:885389; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5390; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315391; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315392; GFX7-SDAG-NEXT: v_min_f32_e32 v21, v21, v315393; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:925394; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5395; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315396; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315397; GFX7-SDAG-NEXT: v_min_f32_e32 v22, v22, v315398; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:965399; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5400; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315401; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315402; GFX7-SDAG-NEXT: v_min_f32_e32 v23, v23, v315403; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:1005404; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5405; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315406; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315407; GFX7-SDAG-NEXT: v_min_f32_e32 v24, v24, v315408; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:1045409; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5410; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315411; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315412; GFX7-SDAG-NEXT: v_min_f32_e32 v25, v25, v315413; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:1085414; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5415; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315416; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315417; GFX7-SDAG-NEXT: v_min_f32_e32 v26, v26, v315418; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:1125419; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5420; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315421; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315422; GFX7-SDAG-NEXT: v_min_f32_e32 v27, v27, v315423; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:1165424; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5425; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315426; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315427; GFX7-SDAG-NEXT: v_min_f32_e32 v28, v28, v315428; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:1205429; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5430; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315431; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315432; GFX7-SDAG-NEXT: v_min_f32_e32 v29, v29, v315433; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:1245434; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5435; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315436; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315437; GFX7-SDAG-NEXT: v_min_f32_e32 v30, v30, v315438; GFX7-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s325439; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)5440; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v31, v315441; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v31, v315442; GFX7-SDAG-NEXT: v_min_f32_e32 v31, v31, v325443; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]5444;5445; GFX7-GISEL-LABEL: v_minimumnum_v32f16:5446; GFX7-GISEL: ; %bb.0:5447; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5448; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:45449; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v0, v05450; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v1, v15451; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v2, v25452; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v3, v35453; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v4, v45454; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v5, v55455; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v6, v65456; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v7, v75457; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v8, v85458; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v9, v95459; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v10, v105460; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v11, v115461; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v12, v125462; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v13, v135463; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v14, v145464; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v15, v155465; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v16, v165466; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v17, v175467; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v18, v185468; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v19, v195469; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v20, v205470; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v21, v215471; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v22, v225472; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v23, v235473; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v24, v245474; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v25, v255475; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v26, v265476; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v27, v275477; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v28, v285478; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v29, v295479; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v30, v305480; GFX7-GISEL-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:1285481; GFX7-GISEL-NEXT: s_waitcnt vmcnt(1)5482; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315483; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v315484; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:85485; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v0, v05486; GFX7-GISEL-NEXT: s_waitcnt vmcnt(1)5487; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v32, v325488; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5489; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315490; GFX7-GISEL-NEXT: v_min_f32_e32 v1, v1, v315491; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:125492; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v1, v15493; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5494; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315495; GFX7-GISEL-NEXT: v_min_f32_e32 v2, v2, v315496; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:165497; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v2, v25498; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5499; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315500; GFX7-GISEL-NEXT: v_min_f32_e32 v3, v3, v315501; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:205502; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v3, v35503; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5504; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315505; GFX7-GISEL-NEXT: v_min_f32_e32 v4, v4, v315506; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:245507; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v4, v45508; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5509; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315510; GFX7-GISEL-NEXT: v_min_f32_e32 v5, v5, v315511; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:285512; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v5, v55513; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5514; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315515; GFX7-GISEL-NEXT: v_min_f32_e32 v6, v6, v315516; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:325517; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v6, v65518; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5519; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315520; GFX7-GISEL-NEXT: v_min_f32_e32 v7, v7, v315521; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:365522; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v7, v75523; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5524; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315525; GFX7-GISEL-NEXT: v_min_f32_e32 v8, v8, v315526; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:405527; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v8, v85528; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5529; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315530; GFX7-GISEL-NEXT: v_min_f32_e32 v9, v9, v315531; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:445532; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v9, v95533; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5534; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315535; GFX7-GISEL-NEXT: v_min_f32_e32 v10, v10, v315536; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:485537; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v10, v105538; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5539; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315540; GFX7-GISEL-NEXT: v_min_f32_e32 v11, v11, v315541; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:525542; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v11, v115543; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5544; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315545; GFX7-GISEL-NEXT: v_min_f32_e32 v12, v12, v315546; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:565547; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v12, v125548; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5549; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315550; GFX7-GISEL-NEXT: v_min_f32_e32 v13, v13, v315551; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:605552; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v13, v135553; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5554; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315555; GFX7-GISEL-NEXT: v_min_f32_e32 v14, v14, v315556; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:645557; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v14, v145558; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5559; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315560; GFX7-GISEL-NEXT: v_min_f32_e32 v15, v15, v315561; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:685562; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v15, v155563; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5564; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315565; GFX7-GISEL-NEXT: v_min_f32_e32 v16, v16, v315566; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:725567; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v16, v165568; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5569; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315570; GFX7-GISEL-NEXT: v_min_f32_e32 v17, v17, v315571; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:765572; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v17, v175573; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5574; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315575; GFX7-GISEL-NEXT: v_min_f32_e32 v18, v18, v315576; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:805577; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v18, v185578; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5579; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315580; GFX7-GISEL-NEXT: v_min_f32_e32 v19, v19, v315581; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:845582; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v19, v195583; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5584; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315585; GFX7-GISEL-NEXT: v_min_f32_e32 v20, v20, v315586; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:885587; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v20, v205588; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5589; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315590; GFX7-GISEL-NEXT: v_min_f32_e32 v21, v21, v315591; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:925592; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v21, v215593; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5594; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315595; GFX7-GISEL-NEXT: v_min_f32_e32 v22, v22, v315596; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:965597; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v22, v225598; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5599; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315600; GFX7-GISEL-NEXT: v_min_f32_e32 v23, v23, v315601; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:1005602; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v23, v235603; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5604; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315605; GFX7-GISEL-NEXT: v_min_f32_e32 v24, v24, v315606; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:1045607; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v24, v245608; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5609; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315610; GFX7-GISEL-NEXT: v_min_f32_e32 v25, v25, v315611; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:1085612; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v25, v255613; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5614; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315615; GFX7-GISEL-NEXT: v_min_f32_e32 v26, v26, v315616; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:1125617; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v26, v265618; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5619; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315620; GFX7-GISEL-NEXT: v_min_f32_e32 v27, v27, v315621; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:1165622; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v27, v275623; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5624; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315625; GFX7-GISEL-NEXT: v_min_f32_e32 v28, v28, v315626; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:1205627; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v28, v285628; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5629; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315630; GFX7-GISEL-NEXT: v_min_f32_e32 v29, v29, v315631; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:1245632; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v29, v295633; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5634; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315635; GFX7-GISEL-NEXT: v_min_f32_e32 v30, v30, v315636; GFX7-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s325637; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v30, v305638; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0)5639; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v31, v315640; GFX7-GISEL-NEXT: v_min_f32_e32 v31, v31, v325641; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v31, v315642; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]5643;5644; GFX8-SDAG-LABEL: v_minimumnum_v32f16:5645; GFX8-SDAG: ; %bb.0:5646; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5647; GFX8-SDAG-NEXT: buffer_store_dword v40, off, s[0:3], s32 offset:48 ; 4-byte Folded Spill5648; GFX8-SDAG-NEXT: buffer_store_dword v41, off, s[0:3], s32 offset:44 ; 4-byte Folded Spill5649; GFX8-SDAG-NEXT: buffer_store_dword v42, off, s[0:3], s32 offset:40 ; 4-byte Folded Spill5650; GFX8-SDAG-NEXT: buffer_store_dword v43, off, s[0:3], s32 offset:36 ; 4-byte Folded Spill5651; GFX8-SDAG-NEXT: buffer_store_dword v44, off, s[0:3], s32 offset:32 ; 4-byte Folded Spill5652; GFX8-SDAG-NEXT: buffer_store_dword v45, off, s[0:3], s32 offset:28 ; 4-byte Folded Spill5653; GFX8-SDAG-NEXT: buffer_store_dword v46, off, s[0:3], s32 offset:24 ; 4-byte Folded Spill5654; GFX8-SDAG-NEXT: buffer_store_dword v47, off, s[0:3], s32 offset:20 ; 4-byte Folded Spill5655; GFX8-SDAG-NEXT: buffer_store_dword v56, off, s[0:3], s32 offset:16 ; 4-byte Folded Spill5656; GFX8-SDAG-NEXT: buffer_store_dword v57, off, s[0:3], s32 offset:12 ; 4-byte Folded Spill5657; GFX8-SDAG-NEXT: buffer_store_dword v58, off, s[0:3], s32 offset:8 ; 4-byte Folded Spill5658; GFX8-SDAG-NEXT: buffer_store_dword v59, off, s[0:3], s32 offset:4 ; 4-byte Folded Spill5659; GFX8-SDAG-NEXT: v_max_f16_sdwa v38, v27, v27 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15660; GFX8-SDAG-NEXT: v_max_f16_sdwa v39, v11, v11 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15661; GFX8-SDAG-NEXT: v_max_f16_sdwa v48, v26, v26 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15662; GFX8-SDAG-NEXT: v_max_f16_sdwa v49, v10, v10 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15663; GFX8-SDAG-NEXT: v_max_f16_sdwa v50, v25, v25 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15664; GFX8-SDAG-NEXT: v_max_f16_sdwa v51, v9, v9 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15665; GFX8-SDAG-NEXT: v_max_f16_sdwa v40, v22, v22 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15666; GFX8-SDAG-NEXT: v_max_f16_sdwa v41, v6, v6 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15667; GFX8-SDAG-NEXT: v_max_f16_sdwa v58, v17, v17 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15668; GFX8-SDAG-NEXT: v_max_f16_sdwa v59, v1, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15669; GFX8-SDAG-NEXT: v_max_f16_e32 v17, v17, v175670; GFX8-SDAG-NEXT: v_max_f16_e32 v1, v1, v15671; GFX8-SDAG-NEXT: v_max_f16_sdwa v52, v24, v24 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15672; GFX8-SDAG-NEXT: v_max_f16_sdwa v53, v8, v8 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15673; GFX8-SDAG-NEXT: v_max_f16_sdwa v54, v23, v23 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15674; GFX8-SDAG-NEXT: v_max_f16_sdwa v55, v7, v7 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15675; GFX8-SDAG-NEXT: v_max_f16_sdwa v42, v21, v21 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15676; GFX8-SDAG-NEXT: v_max_f16_sdwa v43, v5, v5 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15677; GFX8-SDAG-NEXT: v_max_f16_sdwa v44, v20, v20 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15678; GFX8-SDAG-NEXT: v_max_f16_sdwa v45, v4, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15679; GFX8-SDAG-NEXT: v_max_f16_sdwa v46, v19, v19 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15680; GFX8-SDAG-NEXT: v_max_f16_sdwa v47, v3, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15681; GFX8-SDAG-NEXT: v_max_f16_sdwa v56, v18, v18 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15682; GFX8-SDAG-NEXT: v_max_f16_sdwa v57, v2, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15683; GFX8-SDAG-NEXT: v_min_f16_sdwa v38, v39, v38 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5684; GFX8-SDAG-NEXT: v_min_f16_sdwa v39, v49, v48 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5685; GFX8-SDAG-NEXT: v_min_f16_sdwa v48, v51, v50 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5686; GFX8-SDAG-NEXT: v_min_f16_sdwa v51, v41, v40 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5687; GFX8-SDAG-NEXT: v_min_f16_sdwa v40, v59, v58 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5688; GFX8-SDAG-NEXT: v_min_f16_e32 v1, v1, v175689; GFX8-SDAG-NEXT: v_min_f16_sdwa v49, v53, v52 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5690; GFX8-SDAG-NEXT: v_min_f16_sdwa v50, v55, v54 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5691; GFX8-SDAG-NEXT: v_min_f16_sdwa v52, v43, v42 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5692; GFX8-SDAG-NEXT: v_min_f16_sdwa v53, v45, v44 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5693; GFX8-SDAG-NEXT: v_min_f16_sdwa v54, v47, v46 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5694; GFX8-SDAG-NEXT: v_min_f16_sdwa v55, v57, v56 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5695; GFX8-SDAG-NEXT: v_or_b32_e32 v1, v1, v405696; GFX8-SDAG-NEXT: buffer_load_dword v59, off, s[0:3], s32 offset:4 ; 4-byte Folded Reload5697; GFX8-SDAG-NEXT: buffer_load_dword v58, off, s[0:3], s32 offset:8 ; 4-byte Folded Reload5698; GFX8-SDAG-NEXT: buffer_load_dword v57, off, s[0:3], s32 offset:12 ; 4-byte Folded Reload5699; GFX8-SDAG-NEXT: buffer_load_dword v56, off, s[0:3], s32 offset:16 ; 4-byte Folded Reload5700; GFX8-SDAG-NEXT: buffer_load_dword v47, off, s[0:3], s32 offset:20 ; 4-byte Folded Reload5701; GFX8-SDAG-NEXT: buffer_load_dword v46, off, s[0:3], s32 offset:24 ; 4-byte Folded Reload5702; GFX8-SDAG-NEXT: buffer_load_dword v45, off, s[0:3], s32 offset:28 ; 4-byte Folded Reload5703; GFX8-SDAG-NEXT: buffer_load_dword v44, off, s[0:3], s32 offset:32 ; 4-byte Folded Reload5704; GFX8-SDAG-NEXT: buffer_load_dword v43, off, s[0:3], s32 offset:36 ; 4-byte Folded Reload5705; GFX8-SDAG-NEXT: buffer_load_dword v42, off, s[0:3], s32 offset:40 ; 4-byte Folded Reload5706; GFX8-SDAG-NEXT: buffer_load_dword v41, off, s[0:3], s32 offset:44 ; 4-byte Folded Reload5707; GFX8-SDAG-NEXT: buffer_load_dword v40, off, s[0:3], s32 offset:48 ; 4-byte Folded Reload5708; GFX8-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s325709; GFX8-SDAG-NEXT: v_max_f16_sdwa v32, v30, v30 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15710; GFX8-SDAG-NEXT: v_max_f16_sdwa v33, v14, v14 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15711; GFX8-SDAG-NEXT: v_max_f16_sdwa v34, v29, v29 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15712; GFX8-SDAG-NEXT: v_max_f16_sdwa v35, v13, v13 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15713; GFX8-SDAG-NEXT: v_max_f16_sdwa v36, v28, v28 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15714; GFX8-SDAG-NEXT: v_max_f16_sdwa v37, v12, v12 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15715; GFX8-SDAG-NEXT: v_min_f16_sdwa v32, v33, v32 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5716; GFX8-SDAG-NEXT: v_max_f16_sdwa v33, v16, v16 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15717; GFX8-SDAG-NEXT: v_min_f16_sdwa v34, v35, v34 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5718; GFX8-SDAG-NEXT: v_max_f16_sdwa v35, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15719; GFX8-SDAG-NEXT: v_min_f16_sdwa v36, v37, v36 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5720; GFX8-SDAG-NEXT: v_max_f16_sdwa v37, v15, v15 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15721; GFX8-SDAG-NEXT: v_max_f16_e32 v15, v15, v155722; GFX8-SDAG-NEXT: v_min_f16_sdwa v33, v35, v33 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5723; GFX8-SDAG-NEXT: v_max_f16_e32 v30, v30, v305724; GFX8-SDAG-NEXT: v_max_f16_e32 v14, v14, v145725; GFX8-SDAG-NEXT: v_max_f16_e32 v29, v29, v295726; GFX8-SDAG-NEXT: v_max_f16_e32 v13, v13, v135727; GFX8-SDAG-NEXT: v_max_f16_e32 v28, v28, v285728; GFX8-SDAG-NEXT: v_max_f16_e32 v12, v12, v125729; GFX8-SDAG-NEXT: v_max_f16_e32 v27, v27, v275730; GFX8-SDAG-NEXT: v_max_f16_e32 v11, v11, v115731; GFX8-SDAG-NEXT: v_max_f16_e32 v26, v26, v265732; GFX8-SDAG-NEXT: v_max_f16_e32 v10, v10, v105733; GFX8-SDAG-NEXT: v_max_f16_e32 v25, v25, v255734; GFX8-SDAG-NEXT: v_max_f16_e32 v9, v9, v95735; GFX8-SDAG-NEXT: v_max_f16_e32 v24, v24, v245736; GFX8-SDAG-NEXT: v_max_f16_e32 v8, v8, v85737; GFX8-SDAG-NEXT: v_max_f16_e32 v23, v23, v235738; GFX8-SDAG-NEXT: v_max_f16_e32 v7, v7, v75739; GFX8-SDAG-NEXT: v_max_f16_e32 v22, v22, v225740; GFX8-SDAG-NEXT: v_max_f16_e32 v6, v6, v65741; GFX8-SDAG-NEXT: v_max_f16_e32 v21, v21, v215742; GFX8-SDAG-NEXT: v_max_f16_e32 v5, v5, v55743; GFX8-SDAG-NEXT: v_max_f16_e32 v20, v20, v205744; GFX8-SDAG-NEXT: v_max_f16_e32 v4, v4, v45745; GFX8-SDAG-NEXT: v_max_f16_e32 v19, v19, v195746; GFX8-SDAG-NEXT: v_max_f16_e32 v3, v3, v35747; GFX8-SDAG-NEXT: v_max_f16_e32 v18, v18, v185748; GFX8-SDAG-NEXT: v_max_f16_e32 v2, v2, v25749; GFX8-SDAG-NEXT: v_max_f16_e32 v16, v16, v165750; GFX8-SDAG-NEXT: v_max_f16_e32 v0, v0, v05751; GFX8-SDAG-NEXT: v_min_f16_e32 v14, v14, v305752; GFX8-SDAG-NEXT: v_min_f16_e32 v13, v13, v295753; GFX8-SDAG-NEXT: v_min_f16_e32 v12, v12, v285754; GFX8-SDAG-NEXT: v_min_f16_e32 v11, v11, v275755; GFX8-SDAG-NEXT: v_min_f16_e32 v10, v10, v265756; GFX8-SDAG-NEXT: v_min_f16_e32 v9, v9, v255757; GFX8-SDAG-NEXT: v_min_f16_e32 v8, v8, v245758; GFX8-SDAG-NEXT: v_min_f16_e32 v7, v7, v235759; GFX8-SDAG-NEXT: v_min_f16_e32 v6, v6, v225760; GFX8-SDAG-NEXT: v_min_f16_e32 v5, v5, v215761; GFX8-SDAG-NEXT: v_min_f16_e32 v4, v4, v205762; GFX8-SDAG-NEXT: v_min_f16_e32 v3, v3, v195763; GFX8-SDAG-NEXT: v_min_f16_e32 v2, v2, v185764; GFX8-SDAG-NEXT: v_min_f16_e32 v0, v0, v165765; GFX8-SDAG-NEXT: v_or_b32_e32 v0, v0, v335766; GFX8-SDAG-NEXT: v_or_b32_e32 v2, v2, v555767; GFX8-SDAG-NEXT: v_or_b32_e32 v3, v3, v545768; GFX8-SDAG-NEXT: v_or_b32_e32 v4, v4, v535769; GFX8-SDAG-NEXT: v_or_b32_e32 v5, v5, v525770; GFX8-SDAG-NEXT: v_or_b32_e32 v6, v6, v515771; GFX8-SDAG-NEXT: v_or_b32_e32 v7, v7, v505772; GFX8-SDAG-NEXT: v_or_b32_e32 v8, v8, v495773; GFX8-SDAG-NEXT: v_or_b32_e32 v9, v9, v485774; GFX8-SDAG-NEXT: v_or_b32_e32 v10, v10, v395775; GFX8-SDAG-NEXT: v_or_b32_e32 v11, v11, v385776; GFX8-SDAG-NEXT: v_or_b32_e32 v12, v12, v365777; GFX8-SDAG-NEXT: v_or_b32_e32 v13, v13, v345778; GFX8-SDAG-NEXT: v_or_b32_e32 v14, v14, v325779; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0)5780; GFX8-SDAG-NEXT: v_max_f16_sdwa v35, v31, v31 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15781; GFX8-SDAG-NEXT: v_max_f16_e32 v31, v31, v315782; GFX8-SDAG-NEXT: v_min_f16_sdwa v35, v37, v35 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5783; GFX8-SDAG-NEXT: v_min_f16_e32 v15, v15, v315784; GFX8-SDAG-NEXT: v_or_b32_e32 v15, v15, v355785; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]5786;5787; GFX8-GISEL-LABEL: v_minimumnum_v32f16:5788; GFX8-GISEL: ; %bb.0:5789; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5790; GFX8-GISEL-NEXT: v_max_f16_e32 v31, v0, v05791; GFX8-GISEL-NEXT: v_max_f16_e32 v32, v16, v165792; GFX8-GISEL-NEXT: v_max_f16_sdwa v0, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15793; GFX8-GISEL-NEXT: v_max_f16_sdwa v16, v16, v16 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15794; GFX8-GISEL-NEXT: v_min_f16_e32 v31, v31, v325795; GFX8-GISEL-NEXT: v_min_f16_sdwa v0, v0, v16 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5796; GFX8-GISEL-NEXT: v_max_f16_e32 v16, v1, v15797; GFX8-GISEL-NEXT: v_max_f16_e32 v32, v17, v175798; GFX8-GISEL-NEXT: v_max_f16_sdwa v1, v1, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15799; GFX8-GISEL-NEXT: v_max_f16_sdwa v17, v17, v17 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15800; GFX8-GISEL-NEXT: v_min_f16_e32 v16, v16, v325801; GFX8-GISEL-NEXT: v_min_f16_sdwa v1, v1, v17 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5802; GFX8-GISEL-NEXT: v_max_f16_e32 v17, v2, v25803; GFX8-GISEL-NEXT: v_max_f16_e32 v32, v18, v185804; GFX8-GISEL-NEXT: v_max_f16_sdwa v2, v2, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15805; GFX8-GISEL-NEXT: v_max_f16_sdwa v18, v18, v18 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15806; GFX8-GISEL-NEXT: v_min_f16_e32 v17, v17, v325807; GFX8-GISEL-NEXT: v_min_f16_sdwa v2, v2, v18 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5808; GFX8-GISEL-NEXT: v_max_f16_e32 v18, v3, v35809; GFX8-GISEL-NEXT: v_max_f16_e32 v32, v19, v195810; GFX8-GISEL-NEXT: v_max_f16_sdwa v3, v3, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15811; GFX8-GISEL-NEXT: v_max_f16_sdwa v19, v19, v19 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15812; GFX8-GISEL-NEXT: v_min_f16_e32 v18, v18, v325813; GFX8-GISEL-NEXT: v_min_f16_sdwa v3, v3, v19 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5814; GFX8-GISEL-NEXT: v_max_f16_e32 v19, v4, v45815; GFX8-GISEL-NEXT: v_max_f16_e32 v32, v20, v205816; GFX8-GISEL-NEXT: v_max_f16_sdwa v4, v4, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15817; GFX8-GISEL-NEXT: v_max_f16_sdwa v20, v20, v20 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15818; GFX8-GISEL-NEXT: v_min_f16_e32 v19, v19, v325819; GFX8-GISEL-NEXT: v_min_f16_sdwa v4, v4, v20 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5820; GFX8-GISEL-NEXT: v_max_f16_e32 v20, v5, v55821; GFX8-GISEL-NEXT: v_max_f16_e32 v32, v21, v215822; GFX8-GISEL-NEXT: v_max_f16_sdwa v5, v5, v5 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15823; GFX8-GISEL-NEXT: v_max_f16_sdwa v21, v21, v21 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15824; GFX8-GISEL-NEXT: v_min_f16_e32 v20, v20, v325825; GFX8-GISEL-NEXT: v_min_f16_sdwa v5, v5, v21 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5826; GFX8-GISEL-NEXT: v_max_f16_e32 v21, v6, v65827; GFX8-GISEL-NEXT: v_max_f16_e32 v32, v22, v225828; GFX8-GISEL-NEXT: v_max_f16_sdwa v6, v6, v6 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15829; GFX8-GISEL-NEXT: v_max_f16_sdwa v22, v22, v22 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15830; GFX8-GISEL-NEXT: v_min_f16_e32 v21, v21, v325831; GFX8-GISEL-NEXT: v_min_f16_sdwa v6, v6, v22 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5832; GFX8-GISEL-NEXT: v_max_f16_e32 v22, v7, v75833; GFX8-GISEL-NEXT: v_max_f16_e32 v32, v23, v235834; GFX8-GISEL-NEXT: v_max_f16_sdwa v7, v7, v7 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15835; GFX8-GISEL-NEXT: v_max_f16_sdwa v23, v23, v23 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15836; GFX8-GISEL-NEXT: v_min_f16_e32 v22, v22, v325837; GFX8-GISEL-NEXT: v_min_f16_sdwa v7, v7, v23 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5838; GFX8-GISEL-NEXT: v_max_f16_e32 v23, v8, v85839; GFX8-GISEL-NEXT: v_max_f16_e32 v32, v24, v245840; GFX8-GISEL-NEXT: v_max_f16_sdwa v8, v8, v8 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15841; GFX8-GISEL-NEXT: v_max_f16_sdwa v24, v24, v24 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15842; GFX8-GISEL-NEXT: v_min_f16_e32 v23, v23, v325843; GFX8-GISEL-NEXT: v_min_f16_sdwa v8, v8, v24 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5844; GFX8-GISEL-NEXT: v_max_f16_e32 v24, v9, v95845; GFX8-GISEL-NEXT: v_max_f16_e32 v32, v25, v255846; GFX8-GISEL-NEXT: v_max_f16_sdwa v9, v9, v9 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15847; GFX8-GISEL-NEXT: v_max_f16_sdwa v25, v25, v25 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15848; GFX8-GISEL-NEXT: v_min_f16_e32 v24, v24, v325849; GFX8-GISEL-NEXT: v_min_f16_sdwa v9, v9, v25 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5850; GFX8-GISEL-NEXT: v_max_f16_e32 v25, v10, v105851; GFX8-GISEL-NEXT: v_max_f16_e32 v32, v26, v265852; GFX8-GISEL-NEXT: v_max_f16_sdwa v10, v10, v10 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15853; GFX8-GISEL-NEXT: v_max_f16_sdwa v26, v26, v26 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15854; GFX8-GISEL-NEXT: v_min_f16_e32 v25, v25, v325855; GFX8-GISEL-NEXT: v_min_f16_sdwa v10, v10, v26 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5856; GFX8-GISEL-NEXT: v_max_f16_e32 v26, v11, v115857; GFX8-GISEL-NEXT: v_max_f16_e32 v32, v27, v275858; GFX8-GISEL-NEXT: v_max_f16_sdwa v11, v11, v11 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15859; GFX8-GISEL-NEXT: v_max_f16_sdwa v27, v27, v27 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15860; GFX8-GISEL-NEXT: v_min_f16_e32 v26, v26, v325861; GFX8-GISEL-NEXT: v_min_f16_sdwa v11, v11, v27 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5862; GFX8-GISEL-NEXT: v_max_f16_e32 v27, v12, v125863; GFX8-GISEL-NEXT: v_max_f16_e32 v32, v28, v285864; GFX8-GISEL-NEXT: v_max_f16_sdwa v12, v12, v12 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15865; GFX8-GISEL-NEXT: v_max_f16_sdwa v28, v28, v28 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15866; GFX8-GISEL-NEXT: v_min_f16_e32 v27, v27, v325867; GFX8-GISEL-NEXT: v_min_f16_sdwa v12, v12, v28 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5868; GFX8-GISEL-NEXT: v_max_f16_e32 v28, v13, v135869; GFX8-GISEL-NEXT: v_max_f16_e32 v32, v29, v295870; GFX8-GISEL-NEXT: v_max_f16_sdwa v13, v13, v13 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15871; GFX8-GISEL-NEXT: v_max_f16_sdwa v29, v29, v29 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15872; GFX8-GISEL-NEXT: v_min_f16_e32 v28, v28, v325873; GFX8-GISEL-NEXT: v_min_f16_sdwa v13, v13, v29 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5874; GFX8-GISEL-NEXT: v_max_f16_e32 v29, v14, v145875; GFX8-GISEL-NEXT: v_max_f16_e32 v32, v30, v305876; GFX8-GISEL-NEXT: v_max_f16_sdwa v14, v14, v14 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15877; GFX8-GISEL-NEXT: v_max_f16_sdwa v30, v30, v30 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15878; GFX8-GISEL-NEXT: v_min_f16_sdwa v14, v14, v30 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5879; GFX8-GISEL-NEXT: buffer_load_dword v30, off, s[0:3], s325880; GFX8-GISEL-NEXT: v_min_f16_e32 v29, v29, v325881; GFX8-GISEL-NEXT: v_max_f16_e32 v32, v15, v155882; GFX8-GISEL-NEXT: v_max_f16_sdwa v15, v15, v15 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15883; GFX8-GISEL-NEXT: v_or_b32_e32 v0, v31, v05884; GFX8-GISEL-NEXT: v_or_b32_e32 v1, v16, v15885; GFX8-GISEL-NEXT: v_or_b32_e32 v2, v17, v25886; GFX8-GISEL-NEXT: v_or_b32_e32 v3, v18, v35887; GFX8-GISEL-NEXT: v_or_b32_e32 v4, v19, v45888; GFX8-GISEL-NEXT: v_or_b32_e32 v5, v20, v55889; GFX8-GISEL-NEXT: v_or_b32_e32 v6, v21, v65890; GFX8-GISEL-NEXT: v_or_b32_e32 v7, v22, v75891; GFX8-GISEL-NEXT: v_or_b32_e32 v8, v23, v85892; GFX8-GISEL-NEXT: v_or_b32_e32 v9, v24, v95893; GFX8-GISEL-NEXT: v_or_b32_e32 v10, v25, v105894; GFX8-GISEL-NEXT: v_or_b32_e32 v11, v26, v115895; GFX8-GISEL-NEXT: v_or_b32_e32 v12, v27, v125896; GFX8-GISEL-NEXT: v_or_b32_e32 v13, v28, v135897; GFX8-GISEL-NEXT: v_or_b32_e32 v14, v29, v145898; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0)5899; GFX8-GISEL-NEXT: v_max_f16_e32 v33, v30, v305900; GFX8-GISEL-NEXT: v_max_f16_sdwa v30, v30, v30 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_15901; GFX8-GISEL-NEXT: v_min_f16_e32 v32, v32, v335902; GFX8-GISEL-NEXT: v_min_f16_sdwa v15, v15, v30 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5903; GFX8-GISEL-NEXT: v_or_b32_e32 v15, v32, v155904; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]5905;5906; GFX900-SDAG-LABEL: v_minimumnum_v32f16:5907; GFX900-SDAG: ; %bb.0:5908; GFX900-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5909; GFX900-SDAG-NEXT: v_pk_max_f16 v16, v16, v165910; GFX900-SDAG-NEXT: v_pk_max_f16 v0, v0, v05911; GFX900-SDAG-NEXT: v_pk_min_f16 v0, v0, v165912; GFX900-SDAG-NEXT: v_pk_max_f16 v16, v17, v175913; GFX900-SDAG-NEXT: v_pk_max_f16 v1, v1, v15914; GFX900-SDAG-NEXT: v_pk_min_f16 v1, v1, v165915; GFX900-SDAG-NEXT: v_pk_max_f16 v16, v18, v185916; GFX900-SDAG-NEXT: v_pk_max_f16 v2, v2, v25917; GFX900-SDAG-NEXT: v_pk_min_f16 v2, v2, v165918; GFX900-SDAG-NEXT: v_pk_max_f16 v16, v19, v195919; GFX900-SDAG-NEXT: v_pk_max_f16 v3, v3, v35920; GFX900-SDAG-NEXT: v_pk_min_f16 v3, v3, v165921; GFX900-SDAG-NEXT: buffer_load_dword v16, off, s[0:3], s325922; GFX900-SDAG-NEXT: v_pk_max_f16 v17, v20, v205923; GFX900-SDAG-NEXT: v_pk_max_f16 v4, v4, v45924; GFX900-SDAG-NEXT: v_pk_max_f16 v18, v21, v215925; GFX900-SDAG-NEXT: v_pk_max_f16 v5, v5, v55926; GFX900-SDAG-NEXT: v_pk_max_f16 v19, v22, v225927; GFX900-SDAG-NEXT: v_pk_max_f16 v6, v6, v65928; GFX900-SDAG-NEXT: v_pk_max_f16 v20, v23, v235929; GFX900-SDAG-NEXT: v_pk_max_f16 v7, v7, v75930; GFX900-SDAG-NEXT: v_pk_max_f16 v21, v24, v245931; GFX900-SDAG-NEXT: v_pk_max_f16 v8, v8, v85932; GFX900-SDAG-NEXT: v_pk_max_f16 v22, v25, v255933; GFX900-SDAG-NEXT: v_pk_max_f16 v9, v9, v95934; GFX900-SDAG-NEXT: v_pk_max_f16 v23, v26, v265935; GFX900-SDAG-NEXT: v_pk_max_f16 v10, v10, v105936; GFX900-SDAG-NEXT: v_pk_max_f16 v24, v27, v275937; GFX900-SDAG-NEXT: v_pk_max_f16 v11, v11, v115938; GFX900-SDAG-NEXT: v_pk_max_f16 v25, v28, v285939; GFX900-SDAG-NEXT: v_pk_max_f16 v12, v12, v125940; GFX900-SDAG-NEXT: v_pk_max_f16 v26, v29, v295941; GFX900-SDAG-NEXT: v_pk_max_f16 v13, v13, v135942; GFX900-SDAG-NEXT: v_pk_max_f16 v27, v30, v305943; GFX900-SDAG-NEXT: v_pk_max_f16 v14, v14, v145944; GFX900-SDAG-NEXT: v_pk_max_f16 v15, v15, v155945; GFX900-SDAG-NEXT: v_pk_min_f16 v4, v4, v175946; GFX900-SDAG-NEXT: v_pk_min_f16 v5, v5, v185947; GFX900-SDAG-NEXT: v_pk_min_f16 v6, v6, v195948; GFX900-SDAG-NEXT: v_pk_min_f16 v7, v7, v205949; GFX900-SDAG-NEXT: v_pk_min_f16 v8, v8, v215950; GFX900-SDAG-NEXT: v_pk_min_f16 v9, v9, v225951; GFX900-SDAG-NEXT: v_pk_min_f16 v10, v10, v235952; GFX900-SDAG-NEXT: v_pk_min_f16 v11, v11, v245953; GFX900-SDAG-NEXT: v_pk_min_f16 v12, v12, v255954; GFX900-SDAG-NEXT: v_pk_min_f16 v13, v13, v265955; GFX900-SDAG-NEXT: v_pk_min_f16 v14, v14, v275956; GFX900-SDAG-NEXT: s_waitcnt vmcnt(0)5957; GFX900-SDAG-NEXT: v_pk_max_f16 v16, v16, v165958; GFX900-SDAG-NEXT: v_pk_min_f16 v15, v15, v165959; GFX900-SDAG-NEXT: s_setpc_b64 s[30:31]5960;5961; GFX900-GISEL-LABEL: v_minimumnum_v32f16:5962; GFX900-GISEL: ; %bb.0:5963; GFX900-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5964; GFX900-GISEL-NEXT: v_pk_max_f16 v0, v0, v05965; GFX900-GISEL-NEXT: v_pk_max_f16 v16, v16, v165966; GFX900-GISEL-NEXT: v_pk_min_f16 v0, v0, v165967; GFX900-GISEL-NEXT: v_pk_max_f16 v1, v1, v15968; GFX900-GISEL-NEXT: v_pk_max_f16 v16, v17, v175969; GFX900-GISEL-NEXT: v_pk_min_f16 v1, v1, v165970; GFX900-GISEL-NEXT: v_pk_max_f16 v2, v2, v25971; GFX900-GISEL-NEXT: v_pk_max_f16 v16, v18, v185972; GFX900-GISEL-NEXT: v_pk_min_f16 v2, v2, v165973; GFX900-GISEL-NEXT: v_pk_max_f16 v3, v3, v35974; GFX900-GISEL-NEXT: v_pk_max_f16 v16, v19, v195975; GFX900-GISEL-NEXT: v_pk_min_f16 v3, v3, v165976; GFX900-GISEL-NEXT: buffer_load_dword v16, off, s[0:3], s325977; GFX900-GISEL-NEXT: v_pk_max_f16 v4, v4, v45978; GFX900-GISEL-NEXT: v_pk_max_f16 v17, v20, v205979; GFX900-GISEL-NEXT: v_pk_max_f16 v5, v5, v55980; GFX900-GISEL-NEXT: v_pk_max_f16 v18, v21, v215981; GFX900-GISEL-NEXT: v_pk_max_f16 v6, v6, v65982; GFX900-GISEL-NEXT: v_pk_max_f16 v19, v22, v225983; GFX900-GISEL-NEXT: v_pk_max_f16 v7, v7, v75984; GFX900-GISEL-NEXT: v_pk_max_f16 v20, v23, v235985; GFX900-GISEL-NEXT: v_pk_max_f16 v8, v8, v85986; GFX900-GISEL-NEXT: v_pk_max_f16 v21, v24, v245987; GFX900-GISEL-NEXT: v_pk_max_f16 v9, v9, v95988; GFX900-GISEL-NEXT: v_pk_max_f16 v22, v25, v255989; GFX900-GISEL-NEXT: v_pk_max_f16 v10, v10, v105990; GFX900-GISEL-NEXT: v_pk_max_f16 v23, v26, v265991; GFX900-GISEL-NEXT: v_pk_max_f16 v11, v11, v115992; GFX900-GISEL-NEXT: v_pk_max_f16 v24, v27, v275993; GFX900-GISEL-NEXT: v_pk_max_f16 v12, v12, v125994; GFX900-GISEL-NEXT: v_pk_max_f16 v25, v28, v285995; GFX900-GISEL-NEXT: v_pk_max_f16 v13, v13, v135996; GFX900-GISEL-NEXT: v_pk_max_f16 v26, v29, v295997; GFX900-GISEL-NEXT: v_pk_max_f16 v14, v14, v145998; GFX900-GISEL-NEXT: v_pk_max_f16 v27, v30, v305999; GFX900-GISEL-NEXT: v_pk_max_f16 v15, v15, v156000; GFX900-GISEL-NEXT: v_pk_min_f16 v4, v4, v176001; GFX900-GISEL-NEXT: v_pk_min_f16 v5, v5, v186002; GFX900-GISEL-NEXT: v_pk_min_f16 v6, v6, v196003; GFX900-GISEL-NEXT: v_pk_min_f16 v7, v7, v206004; GFX900-GISEL-NEXT: v_pk_min_f16 v8, v8, v216005; GFX900-GISEL-NEXT: v_pk_min_f16 v9, v9, v226006; GFX900-GISEL-NEXT: v_pk_min_f16 v10, v10, v236007; GFX900-GISEL-NEXT: v_pk_min_f16 v11, v11, v246008; GFX900-GISEL-NEXT: v_pk_min_f16 v12, v12, v256009; GFX900-GISEL-NEXT: v_pk_min_f16 v13, v13, v266010; GFX900-GISEL-NEXT: v_pk_min_f16 v14, v14, v276011; GFX900-GISEL-NEXT: s_waitcnt vmcnt(0)6012; GFX900-GISEL-NEXT: v_pk_max_f16 v16, v16, v166013; GFX900-GISEL-NEXT: v_pk_min_f16 v15, v15, v166014; GFX900-GISEL-NEXT: s_setpc_b64 s[30:31]6015;6016; GFX950-SDAG-LABEL: v_minimumnum_v32f16:6017; GFX950-SDAG: ; %bb.0:6018; GFX950-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6019; GFX950-SDAG-NEXT: scratch_load_dword v31, off, s326020; GFX950-SDAG-NEXT: v_pk_max_f16 v16, v16, v166021; GFX950-SDAG-NEXT: v_pk_max_f16 v0, v0, v06022; GFX950-SDAG-NEXT: v_pk_max_f16 v17, v17, v176023; GFX950-SDAG-NEXT: v_pk_max_f16 v1, v1, v16024; GFX950-SDAG-NEXT: v_pk_max_f16 v18, v18, v186025; GFX950-SDAG-NEXT: v_pk_max_f16 v2, v2, v26026; GFX950-SDAG-NEXT: v_pk_max_f16 v19, v19, v196027; GFX950-SDAG-NEXT: v_pk_max_f16 v3, v3, v36028; GFX950-SDAG-NEXT: v_pk_max_f16 v20, v20, v206029; GFX950-SDAG-NEXT: v_pk_max_f16 v4, v4, v46030; GFX950-SDAG-NEXT: v_pk_max_f16 v21, v21, v216031; GFX950-SDAG-NEXT: v_pk_max_f16 v5, v5, v56032; GFX950-SDAG-NEXT: v_pk_max_f16 v22, v22, v226033; GFX950-SDAG-NEXT: v_pk_max_f16 v6, v6, v66034; GFX950-SDAG-NEXT: v_pk_max_f16 v23, v23, v236035; GFX950-SDAG-NEXT: v_pk_max_f16 v7, v7, v76036; GFX950-SDAG-NEXT: v_pk_max_f16 v24, v24, v246037; GFX950-SDAG-NEXT: v_pk_max_f16 v8, v8, v86038; GFX950-SDAG-NEXT: v_pk_max_f16 v25, v25, v256039; GFX950-SDAG-NEXT: v_pk_max_f16 v9, v9, v96040; GFX950-SDAG-NEXT: v_pk_max_f16 v26, v26, v266041; GFX950-SDAG-NEXT: v_pk_max_f16 v10, v10, v106042; GFX950-SDAG-NEXT: v_pk_max_f16 v27, v27, v276043; GFX950-SDAG-NEXT: v_pk_max_f16 v11, v11, v116044; GFX950-SDAG-NEXT: v_pk_max_f16 v28, v28, v286045; GFX950-SDAG-NEXT: v_pk_max_f16 v12, v12, v126046; GFX950-SDAG-NEXT: v_pk_max_f16 v29, v29, v296047; GFX950-SDAG-NEXT: v_pk_max_f16 v13, v13, v136048; GFX950-SDAG-NEXT: v_pk_max_f16 v30, v30, v306049; GFX950-SDAG-NEXT: v_pk_max_f16 v14, v14, v146050; GFX950-SDAG-NEXT: v_pk_max_f16 v15, v15, v156051; GFX950-SDAG-NEXT: v_pk_min_f16 v0, v0, v166052; GFX950-SDAG-NEXT: v_pk_min_f16 v1, v1, v176053; GFX950-SDAG-NEXT: v_pk_min_f16 v2, v2, v186054; GFX950-SDAG-NEXT: v_pk_min_f16 v3, v3, v196055; GFX950-SDAG-NEXT: v_pk_min_f16 v4, v4, v206056; GFX950-SDAG-NEXT: v_pk_min_f16 v5, v5, v216057; GFX950-SDAG-NEXT: v_pk_min_f16 v6, v6, v226058; GFX950-SDAG-NEXT: v_pk_min_f16 v7, v7, v236059; GFX950-SDAG-NEXT: v_pk_min_f16 v8, v8, v246060; GFX950-SDAG-NEXT: v_pk_min_f16 v9, v9, v256061; GFX950-SDAG-NEXT: v_pk_min_f16 v10, v10, v266062; GFX950-SDAG-NEXT: v_pk_min_f16 v11, v11, v276063; GFX950-SDAG-NEXT: v_pk_min_f16 v12, v12, v286064; GFX950-SDAG-NEXT: v_pk_min_f16 v13, v13, v296065; GFX950-SDAG-NEXT: v_pk_min_f16 v14, v14, v306066; GFX950-SDAG-NEXT: s_waitcnt vmcnt(0)6067; GFX950-SDAG-NEXT: v_pk_max_f16 v16, v31, v316068; GFX950-SDAG-NEXT: s_nop 06069; GFX950-SDAG-NEXT: v_pk_min_f16 v15, v15, v166070; GFX950-SDAG-NEXT: s_setpc_b64 s[30:31]6071;6072; GFX950-GISEL-LABEL: v_minimumnum_v32f16:6073; GFX950-GISEL: ; %bb.0:6074; GFX950-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6075; GFX950-GISEL-NEXT: scratch_load_dword v31, off, s326076; GFX950-GISEL-NEXT: v_pk_max_f16 v0, v0, v06077; GFX950-GISEL-NEXT: v_pk_max_f16 v16, v16, v166078; GFX950-GISEL-NEXT: v_pk_max_f16 v1, v1, v16079; GFX950-GISEL-NEXT: v_pk_max_f16 v17, v17, v176080; GFX950-GISEL-NEXT: v_pk_max_f16 v2, v2, v26081; GFX950-GISEL-NEXT: v_pk_max_f16 v18, v18, v186082; GFX950-GISEL-NEXT: v_pk_max_f16 v3, v3, v36083; GFX950-GISEL-NEXT: v_pk_max_f16 v19, v19, v196084; GFX950-GISEL-NEXT: v_pk_max_f16 v4, v4, v46085; GFX950-GISEL-NEXT: v_pk_max_f16 v20, v20, v206086; GFX950-GISEL-NEXT: v_pk_max_f16 v5, v5, v56087; GFX950-GISEL-NEXT: v_pk_max_f16 v21, v21, v216088; GFX950-GISEL-NEXT: v_pk_max_f16 v6, v6, v66089; GFX950-GISEL-NEXT: v_pk_max_f16 v22, v22, v226090; GFX950-GISEL-NEXT: v_pk_max_f16 v7, v7, v76091; GFX950-GISEL-NEXT: v_pk_max_f16 v23, v23, v236092; GFX950-GISEL-NEXT: v_pk_max_f16 v8, v8, v86093; GFX950-GISEL-NEXT: v_pk_max_f16 v24, v24, v246094; GFX950-GISEL-NEXT: v_pk_max_f16 v9, v9, v96095; GFX950-GISEL-NEXT: v_pk_max_f16 v25, v25, v256096; GFX950-GISEL-NEXT: v_pk_max_f16 v10, v10, v106097; GFX950-GISEL-NEXT: v_pk_max_f16 v26, v26, v266098; GFX950-GISEL-NEXT: v_pk_max_f16 v11, v11, v116099; GFX950-GISEL-NEXT: v_pk_max_f16 v27, v27, v276100; GFX950-GISEL-NEXT: v_pk_max_f16 v12, v12, v126101; GFX950-GISEL-NEXT: v_pk_max_f16 v28, v28, v286102; GFX950-GISEL-NEXT: v_pk_max_f16 v13, v13, v136103; GFX950-GISEL-NEXT: v_pk_max_f16 v29, v29, v296104; GFX950-GISEL-NEXT: v_pk_max_f16 v14, v14, v146105; GFX950-GISEL-NEXT: v_pk_max_f16 v30, v30, v306106; GFX950-GISEL-NEXT: v_pk_max_f16 v15, v15, v156107; GFX950-GISEL-NEXT: v_pk_min_f16 v0, v0, v166108; GFX950-GISEL-NEXT: v_pk_min_f16 v1, v1, v176109; GFX950-GISEL-NEXT: v_pk_min_f16 v2, v2, v186110; GFX950-GISEL-NEXT: v_pk_min_f16 v3, v3, v196111; GFX950-GISEL-NEXT: v_pk_min_f16 v4, v4, v206112; GFX950-GISEL-NEXT: v_pk_min_f16 v5, v5, v216113; GFX950-GISEL-NEXT: v_pk_min_f16 v6, v6, v226114; GFX950-GISEL-NEXT: v_pk_min_f16 v7, v7, v236115; GFX950-GISEL-NEXT: v_pk_min_f16 v8, v8, v246116; GFX950-GISEL-NEXT: v_pk_min_f16 v9, v9, v256117; GFX950-GISEL-NEXT: v_pk_min_f16 v10, v10, v266118; GFX950-GISEL-NEXT: v_pk_min_f16 v11, v11, v276119; GFX950-GISEL-NEXT: v_pk_min_f16 v12, v12, v286120; GFX950-GISEL-NEXT: v_pk_min_f16 v13, v13, v296121; GFX950-GISEL-NEXT: v_pk_min_f16 v14, v14, v306122; GFX950-GISEL-NEXT: s_waitcnt vmcnt(0)6123; GFX950-GISEL-NEXT: v_pk_max_f16 v16, v31, v316124; GFX950-GISEL-NEXT: s_nop 06125; GFX950-GISEL-NEXT: v_pk_min_f16 v15, v15, v166126; GFX950-GISEL-NEXT: s_setpc_b64 s[30:31]6127;6128; GFX10-SDAG-LABEL: v_minimumnum_v32f16:6129; GFX10-SDAG: ; %bb.0:6130; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6131; GFX10-SDAG-NEXT: buffer_load_dword v31, off, s[0:3], s326132; GFX10-SDAG-NEXT: v_pk_max_f16 v16, v16, v166133; GFX10-SDAG-NEXT: v_pk_max_f16 v0, v0, v06134; GFX10-SDAG-NEXT: v_pk_max_f16 v17, v17, v176135; GFX10-SDAG-NEXT: v_pk_max_f16 v1, v1, v16136; GFX10-SDAG-NEXT: v_pk_max_f16 v18, v18, v186137; GFX10-SDAG-NEXT: v_pk_max_f16 v2, v2, v26138; GFX10-SDAG-NEXT: v_pk_max_f16 v19, v19, v196139; GFX10-SDAG-NEXT: v_pk_max_f16 v3, v3, v36140; GFX10-SDAG-NEXT: v_pk_max_f16 v20, v20, v206141; GFX10-SDAG-NEXT: v_pk_max_f16 v4, v4, v46142; GFX10-SDAG-NEXT: v_pk_max_f16 v21, v21, v216143; GFX10-SDAG-NEXT: v_pk_max_f16 v5, v5, v56144; GFX10-SDAG-NEXT: v_pk_max_f16 v22, v22, v226145; GFX10-SDAG-NEXT: v_pk_max_f16 v6, v6, v66146; GFX10-SDAG-NEXT: v_pk_max_f16 v23, v23, v236147; GFX10-SDAG-NEXT: v_pk_max_f16 v7, v7, v76148; GFX10-SDAG-NEXT: v_pk_max_f16 v24, v24, v246149; GFX10-SDAG-NEXT: v_pk_max_f16 v8, v8, v86150; GFX10-SDAG-NEXT: v_pk_max_f16 v25, v25, v256151; GFX10-SDAG-NEXT: v_pk_max_f16 v9, v9, v96152; GFX10-SDAG-NEXT: v_pk_max_f16 v26, v26, v266153; GFX10-SDAG-NEXT: v_pk_max_f16 v10, v10, v106154; GFX10-SDAG-NEXT: v_pk_max_f16 v27, v27, v276155; GFX10-SDAG-NEXT: v_pk_max_f16 v11, v11, v116156; GFX10-SDAG-NEXT: v_pk_max_f16 v28, v28, v286157; GFX10-SDAG-NEXT: v_pk_max_f16 v12, v12, v126158; GFX10-SDAG-NEXT: v_pk_max_f16 v29, v29, v296159; GFX10-SDAG-NEXT: v_pk_max_f16 v13, v13, v136160; GFX10-SDAG-NEXT: v_pk_max_f16 v30, v30, v306161; GFX10-SDAG-NEXT: v_pk_max_f16 v14, v14, v146162; GFX10-SDAG-NEXT: v_pk_max_f16 v15, v15, v156163; GFX10-SDAG-NEXT: v_pk_min_f16 v0, v0, v166164; GFX10-SDAG-NEXT: v_pk_min_f16 v1, v1, v176165; GFX10-SDAG-NEXT: v_pk_min_f16 v2, v2, v186166; GFX10-SDAG-NEXT: v_pk_min_f16 v3, v3, v196167; GFX10-SDAG-NEXT: v_pk_min_f16 v4, v4, v206168; GFX10-SDAG-NEXT: v_pk_min_f16 v5, v5, v216169; GFX10-SDAG-NEXT: v_pk_min_f16 v6, v6, v226170; GFX10-SDAG-NEXT: v_pk_min_f16 v7, v7, v236171; GFX10-SDAG-NEXT: v_pk_min_f16 v8, v8, v246172; GFX10-SDAG-NEXT: v_pk_min_f16 v9, v9, v256173; GFX10-SDAG-NEXT: v_pk_min_f16 v10, v10, v266174; GFX10-SDAG-NEXT: v_pk_min_f16 v11, v11, v276175; GFX10-SDAG-NEXT: v_pk_min_f16 v12, v12, v286176; GFX10-SDAG-NEXT: v_pk_min_f16 v13, v13, v296177; GFX10-SDAG-NEXT: v_pk_min_f16 v14, v14, v306178; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0)6179; GFX10-SDAG-NEXT: v_pk_max_f16 v16, v31, v316180; GFX10-SDAG-NEXT: v_pk_min_f16 v15, v15, v166181; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]6182;6183; GFX10-GISEL-LABEL: v_minimumnum_v32f16:6184; GFX10-GISEL: ; %bb.0:6185; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6186; GFX10-GISEL-NEXT: buffer_load_dword v31, off, s[0:3], s326187; GFX10-GISEL-NEXT: v_pk_max_f16 v0, v0, v06188; GFX10-GISEL-NEXT: v_pk_max_f16 v16, v16, v166189; GFX10-GISEL-NEXT: v_pk_max_f16 v1, v1, v16190; GFX10-GISEL-NEXT: v_pk_max_f16 v17, v17, v176191; GFX10-GISEL-NEXT: v_pk_max_f16 v2, v2, v26192; GFX10-GISEL-NEXT: v_pk_max_f16 v18, v18, v186193; GFX10-GISEL-NEXT: v_pk_max_f16 v3, v3, v36194; GFX10-GISEL-NEXT: v_pk_max_f16 v19, v19, v196195; GFX10-GISEL-NEXT: v_pk_max_f16 v4, v4, v46196; GFX10-GISEL-NEXT: v_pk_max_f16 v20, v20, v206197; GFX10-GISEL-NEXT: v_pk_max_f16 v5, v5, v56198; GFX10-GISEL-NEXT: v_pk_max_f16 v21, v21, v216199; GFX10-GISEL-NEXT: v_pk_max_f16 v6, v6, v66200; GFX10-GISEL-NEXT: v_pk_max_f16 v22, v22, v226201; GFX10-GISEL-NEXT: v_pk_max_f16 v7, v7, v76202; GFX10-GISEL-NEXT: v_pk_max_f16 v23, v23, v236203; GFX10-GISEL-NEXT: v_pk_max_f16 v8, v8, v86204; GFX10-GISEL-NEXT: v_pk_max_f16 v24, v24, v246205; GFX10-GISEL-NEXT: v_pk_max_f16 v9, v9, v96206; GFX10-GISEL-NEXT: v_pk_max_f16 v25, v25, v256207; GFX10-GISEL-NEXT: v_pk_max_f16 v10, v10, v106208; GFX10-GISEL-NEXT: v_pk_max_f16 v26, v26, v266209; GFX10-GISEL-NEXT: v_pk_max_f16 v11, v11, v116210; GFX10-GISEL-NEXT: v_pk_max_f16 v27, v27, v276211; GFX10-GISEL-NEXT: v_pk_max_f16 v12, v12, v126212; GFX10-GISEL-NEXT: v_pk_max_f16 v28, v28, v286213; GFX10-GISEL-NEXT: v_pk_max_f16 v13, v13, v136214; GFX10-GISEL-NEXT: v_pk_max_f16 v29, v29, v296215; GFX10-GISEL-NEXT: v_pk_max_f16 v14, v14, v146216; GFX10-GISEL-NEXT: v_pk_max_f16 v30, v30, v306217; GFX10-GISEL-NEXT: v_pk_max_f16 v15, v15, v156218; GFX10-GISEL-NEXT: v_pk_min_f16 v0, v0, v166219; GFX10-GISEL-NEXT: v_pk_min_f16 v1, v1, v176220; GFX10-GISEL-NEXT: v_pk_min_f16 v2, v2, v186221; GFX10-GISEL-NEXT: v_pk_min_f16 v3, v3, v196222; GFX10-GISEL-NEXT: v_pk_min_f16 v4, v4, v206223; GFX10-GISEL-NEXT: v_pk_min_f16 v5, v5, v216224; GFX10-GISEL-NEXT: v_pk_min_f16 v6, v6, v226225; GFX10-GISEL-NEXT: v_pk_min_f16 v7, v7, v236226; GFX10-GISEL-NEXT: v_pk_min_f16 v8, v8, v246227; GFX10-GISEL-NEXT: v_pk_min_f16 v9, v9, v256228; GFX10-GISEL-NEXT: v_pk_min_f16 v10, v10, v266229; GFX10-GISEL-NEXT: v_pk_min_f16 v11, v11, v276230; GFX10-GISEL-NEXT: v_pk_min_f16 v12, v12, v286231; GFX10-GISEL-NEXT: v_pk_min_f16 v13, v13, v296232; GFX10-GISEL-NEXT: v_pk_min_f16 v14, v14, v306233; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0)6234; GFX10-GISEL-NEXT: v_pk_max_f16 v16, v31, v316235; GFX10-GISEL-NEXT: v_pk_min_f16 v15, v15, v166236; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]6237;6238; GFX11-SDAG-LABEL: v_minimumnum_v32f16:6239; GFX11-SDAG: ; %bb.0:6240; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6241; GFX11-SDAG-NEXT: scratch_load_b32 v31, off, s326242; GFX11-SDAG-NEXT: v_pk_max_f16 v16, v16, v166243; GFX11-SDAG-NEXT: v_pk_max_f16 v0, v0, v06244; GFX11-SDAG-NEXT: v_pk_max_f16 v17, v17, v176245; GFX11-SDAG-NEXT: v_pk_max_f16 v1, v1, v16246; GFX11-SDAG-NEXT: v_pk_max_f16 v18, v18, v186247; GFX11-SDAG-NEXT: v_pk_max_f16 v2, v2, v26248; GFX11-SDAG-NEXT: v_pk_max_f16 v19, v19, v196249; GFX11-SDAG-NEXT: v_pk_max_f16 v3, v3, v36250; GFX11-SDAG-NEXT: v_pk_max_f16 v20, v20, v206251; GFX11-SDAG-NEXT: v_pk_max_f16 v4, v4, v46252; GFX11-SDAG-NEXT: v_pk_max_f16 v21, v21, v216253; GFX11-SDAG-NEXT: v_pk_max_f16 v5, v5, v56254; GFX11-SDAG-NEXT: v_pk_max_f16 v22, v22, v226255; GFX11-SDAG-NEXT: v_pk_max_f16 v6, v6, v66256; GFX11-SDAG-NEXT: v_pk_max_f16 v23, v23, v236257; GFX11-SDAG-NEXT: v_pk_max_f16 v7, v7, v76258; GFX11-SDAG-NEXT: v_pk_max_f16 v24, v24, v246259; GFX11-SDAG-NEXT: v_pk_max_f16 v8, v8, v86260; GFX11-SDAG-NEXT: v_pk_max_f16 v25, v25, v256261; GFX11-SDAG-NEXT: v_pk_max_f16 v9, v9, v96262; GFX11-SDAG-NEXT: v_pk_max_f16 v26, v26, v266263; GFX11-SDAG-NEXT: v_pk_max_f16 v10, v10, v106264; GFX11-SDAG-NEXT: v_pk_max_f16 v27, v27, v276265; GFX11-SDAG-NEXT: v_pk_max_f16 v11, v11, v116266; GFX11-SDAG-NEXT: v_pk_max_f16 v28, v28, v286267; GFX11-SDAG-NEXT: v_pk_max_f16 v12, v12, v126268; GFX11-SDAG-NEXT: v_pk_max_f16 v29, v29, v296269; GFX11-SDAG-NEXT: v_pk_max_f16 v13, v13, v136270; GFX11-SDAG-NEXT: v_pk_max_f16 v30, v30, v306271; GFX11-SDAG-NEXT: v_pk_max_f16 v14, v14, v146272; GFX11-SDAG-NEXT: v_pk_max_f16 v15, v15, v156273; GFX11-SDAG-NEXT: v_pk_min_f16 v0, v0, v166274; GFX11-SDAG-NEXT: v_pk_min_f16 v1, v1, v176275; GFX11-SDAG-NEXT: v_pk_min_f16 v2, v2, v186276; GFX11-SDAG-NEXT: v_pk_min_f16 v3, v3, v196277; GFX11-SDAG-NEXT: v_pk_min_f16 v4, v4, v206278; GFX11-SDAG-NEXT: v_pk_min_f16 v5, v5, v216279; GFX11-SDAG-NEXT: v_pk_min_f16 v6, v6, v226280; GFX11-SDAG-NEXT: v_pk_min_f16 v7, v7, v236281; GFX11-SDAG-NEXT: v_pk_min_f16 v8, v8, v246282; GFX11-SDAG-NEXT: v_pk_min_f16 v9, v9, v256283; GFX11-SDAG-NEXT: v_pk_min_f16 v10, v10, v266284; GFX11-SDAG-NEXT: v_pk_min_f16 v11, v11, v276285; GFX11-SDAG-NEXT: v_pk_min_f16 v12, v12, v286286; GFX11-SDAG-NEXT: v_pk_min_f16 v13, v13, v296287; GFX11-SDAG-NEXT: v_pk_min_f16 v14, v14, v306288; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0)6289; GFX11-SDAG-NEXT: v_pk_max_f16 v16, v31, v316290; GFX11-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)6291; GFX11-SDAG-NEXT: v_pk_min_f16 v15, v15, v166292; GFX11-SDAG-NEXT: s_setpc_b64 s[30:31]6293;6294; GFX11-GISEL-LABEL: v_minimumnum_v32f16:6295; GFX11-GISEL: ; %bb.0:6296; GFX11-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6297; GFX11-GISEL-NEXT: scratch_load_b32 v31, off, s326298; GFX11-GISEL-NEXT: v_pk_max_f16 v0, v0, v06299; GFX11-GISEL-NEXT: v_pk_max_f16 v16, v16, v166300; GFX11-GISEL-NEXT: v_pk_max_f16 v1, v1, v16301; GFX11-GISEL-NEXT: v_pk_max_f16 v17, v17, v176302; GFX11-GISEL-NEXT: v_pk_max_f16 v2, v2, v26303; GFX11-GISEL-NEXT: v_pk_max_f16 v18, v18, v186304; GFX11-GISEL-NEXT: v_pk_max_f16 v3, v3, v36305; GFX11-GISEL-NEXT: v_pk_max_f16 v19, v19, v196306; GFX11-GISEL-NEXT: v_pk_max_f16 v4, v4, v46307; GFX11-GISEL-NEXT: v_pk_max_f16 v20, v20, v206308; GFX11-GISEL-NEXT: v_pk_max_f16 v5, v5, v56309; GFX11-GISEL-NEXT: v_pk_max_f16 v21, v21, v216310; GFX11-GISEL-NEXT: v_pk_max_f16 v6, v6, v66311; GFX11-GISEL-NEXT: v_pk_max_f16 v22, v22, v226312; GFX11-GISEL-NEXT: v_pk_max_f16 v7, v7, v76313; GFX11-GISEL-NEXT: v_pk_max_f16 v23, v23, v236314; GFX11-GISEL-NEXT: v_pk_max_f16 v8, v8, v86315; GFX11-GISEL-NEXT: v_pk_max_f16 v24, v24, v246316; GFX11-GISEL-NEXT: v_pk_max_f16 v9, v9, v96317; GFX11-GISEL-NEXT: v_pk_max_f16 v25, v25, v256318; GFX11-GISEL-NEXT: v_pk_max_f16 v10, v10, v106319; GFX11-GISEL-NEXT: v_pk_max_f16 v26, v26, v266320; GFX11-GISEL-NEXT: v_pk_max_f16 v11, v11, v116321; GFX11-GISEL-NEXT: v_pk_max_f16 v27, v27, v276322; GFX11-GISEL-NEXT: v_pk_max_f16 v12, v12, v126323; GFX11-GISEL-NEXT: v_pk_max_f16 v28, v28, v286324; GFX11-GISEL-NEXT: v_pk_max_f16 v13, v13, v136325; GFX11-GISEL-NEXT: v_pk_max_f16 v29, v29, v296326; GFX11-GISEL-NEXT: v_pk_max_f16 v14, v14, v146327; GFX11-GISEL-NEXT: v_pk_max_f16 v30, v30, v306328; GFX11-GISEL-NEXT: v_pk_max_f16 v15, v15, v156329; GFX11-GISEL-NEXT: v_pk_min_f16 v0, v0, v166330; GFX11-GISEL-NEXT: v_pk_min_f16 v1, v1, v176331; GFX11-GISEL-NEXT: v_pk_min_f16 v2, v2, v186332; GFX11-GISEL-NEXT: v_pk_min_f16 v3, v3, v196333; GFX11-GISEL-NEXT: v_pk_min_f16 v4, v4, v206334; GFX11-GISEL-NEXT: v_pk_min_f16 v5, v5, v216335; GFX11-GISEL-NEXT: v_pk_min_f16 v6, v6, v226336; GFX11-GISEL-NEXT: v_pk_min_f16 v7, v7, v236337; GFX11-GISEL-NEXT: v_pk_min_f16 v8, v8, v246338; GFX11-GISEL-NEXT: v_pk_min_f16 v9, v9, v256339; GFX11-GISEL-NEXT: v_pk_min_f16 v10, v10, v266340; GFX11-GISEL-NEXT: v_pk_min_f16 v11, v11, v276341; GFX11-GISEL-NEXT: v_pk_min_f16 v12, v12, v286342; GFX11-GISEL-NEXT: v_pk_min_f16 v13, v13, v296343; GFX11-GISEL-NEXT: v_pk_min_f16 v14, v14, v306344; GFX11-GISEL-NEXT: s_waitcnt vmcnt(0)6345; GFX11-GISEL-NEXT: v_pk_max_f16 v16, v31, v316346; GFX11-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)6347; GFX11-GISEL-NEXT: v_pk_min_f16 v15, v15, v166348; GFX11-GISEL-NEXT: s_setpc_b64 s[30:31]6349;6350; GFX12-SDAG-LABEL: v_minimumnum_v32f16:6351; GFX12-SDAG: ; %bb.0:6352; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x06353; GFX12-SDAG-NEXT: s_wait_expcnt 0x06354; GFX12-SDAG-NEXT: s_wait_samplecnt 0x06355; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x06356; GFX12-SDAG-NEXT: s_wait_kmcnt 0x06357; GFX12-SDAG-NEXT: scratch_load_b32 v31, off, s326358; GFX12-SDAG-NEXT: v_pk_max_num_f16 v16, v16, v166359; GFX12-SDAG-NEXT: v_pk_max_num_f16 v0, v0, v06360; GFX12-SDAG-NEXT: v_pk_max_num_f16 v17, v17, v176361; GFX12-SDAG-NEXT: v_pk_max_num_f16 v1, v1, v16362; GFX12-SDAG-NEXT: v_pk_max_num_f16 v18, v18, v186363; GFX12-SDAG-NEXT: v_pk_max_num_f16 v2, v2, v26364; GFX12-SDAG-NEXT: v_pk_max_num_f16 v19, v19, v196365; GFX12-SDAG-NEXT: v_pk_max_num_f16 v3, v3, v36366; GFX12-SDAG-NEXT: v_pk_max_num_f16 v20, v20, v206367; GFX12-SDAG-NEXT: v_pk_max_num_f16 v4, v4, v46368; GFX12-SDAG-NEXT: v_pk_max_num_f16 v21, v21, v216369; GFX12-SDAG-NEXT: v_pk_max_num_f16 v5, v5, v56370; GFX12-SDAG-NEXT: v_pk_max_num_f16 v22, v22, v226371; GFX12-SDAG-NEXT: v_pk_max_num_f16 v6, v6, v66372; GFX12-SDAG-NEXT: v_pk_max_num_f16 v23, v23, v236373; GFX12-SDAG-NEXT: v_pk_max_num_f16 v7, v7, v76374; GFX12-SDAG-NEXT: v_pk_max_num_f16 v24, v24, v246375; GFX12-SDAG-NEXT: v_pk_max_num_f16 v8, v8, v86376; GFX12-SDAG-NEXT: v_pk_max_num_f16 v25, v25, v256377; GFX12-SDAG-NEXT: v_pk_max_num_f16 v9, v9, v96378; GFX12-SDAG-NEXT: v_pk_max_num_f16 v26, v26, v266379; GFX12-SDAG-NEXT: v_pk_max_num_f16 v10, v10, v106380; GFX12-SDAG-NEXT: v_pk_max_num_f16 v27, v27, v276381; GFX12-SDAG-NEXT: v_pk_max_num_f16 v11, v11, v116382; GFX12-SDAG-NEXT: v_pk_max_num_f16 v28, v28, v286383; GFX12-SDAG-NEXT: v_pk_max_num_f16 v12, v12, v126384; GFX12-SDAG-NEXT: v_pk_max_num_f16 v29, v29, v296385; GFX12-SDAG-NEXT: v_pk_max_num_f16 v13, v13, v136386; GFX12-SDAG-NEXT: v_pk_max_num_f16 v30, v30, v306387; GFX12-SDAG-NEXT: v_pk_max_num_f16 v14, v14, v146388; GFX12-SDAG-NEXT: v_pk_max_num_f16 v15, v15, v156389; GFX12-SDAG-NEXT: v_pk_min_num_f16 v0, v0, v166390; GFX12-SDAG-NEXT: v_pk_min_num_f16 v1, v1, v176391; GFX12-SDAG-NEXT: v_pk_min_num_f16 v2, v2, v186392; GFX12-SDAG-NEXT: v_pk_min_num_f16 v3, v3, v196393; GFX12-SDAG-NEXT: v_pk_min_num_f16 v4, v4, v206394; GFX12-SDAG-NEXT: v_pk_min_num_f16 v5, v5, v216395; GFX12-SDAG-NEXT: v_pk_min_num_f16 v6, v6, v226396; GFX12-SDAG-NEXT: v_pk_min_num_f16 v7, v7, v236397; GFX12-SDAG-NEXT: v_pk_min_num_f16 v8, v8, v246398; GFX12-SDAG-NEXT: v_pk_min_num_f16 v9, v9, v256399; GFX12-SDAG-NEXT: v_pk_min_num_f16 v10, v10, v266400; GFX12-SDAG-NEXT: v_pk_min_num_f16 v11, v11, v276401; GFX12-SDAG-NEXT: v_pk_min_num_f16 v12, v12, v286402; GFX12-SDAG-NEXT: v_pk_min_num_f16 v13, v13, v296403; GFX12-SDAG-NEXT: v_pk_min_num_f16 v14, v14, v306404; GFX12-SDAG-NEXT: s_wait_loadcnt 0x06405; GFX12-SDAG-NEXT: v_pk_max_num_f16 v16, v31, v316406; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)6407; GFX12-SDAG-NEXT: v_pk_min_num_f16 v15, v15, v166408; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]6409;6410; GFX12-GISEL-LABEL: v_minimumnum_v32f16:6411; GFX12-GISEL: ; %bb.0:6412; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x06413; GFX12-GISEL-NEXT: s_wait_expcnt 0x06414; GFX12-GISEL-NEXT: s_wait_samplecnt 0x06415; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x06416; GFX12-GISEL-NEXT: s_wait_kmcnt 0x06417; GFX12-GISEL-NEXT: scratch_load_b32 v31, off, s326418; GFX12-GISEL-NEXT: v_pk_max_num_f16 v0, v0, v06419; GFX12-GISEL-NEXT: v_pk_max_num_f16 v16, v16, v166420; GFX12-GISEL-NEXT: v_pk_max_num_f16 v1, v1, v16421; GFX12-GISEL-NEXT: v_pk_max_num_f16 v17, v17, v176422; GFX12-GISEL-NEXT: v_pk_max_num_f16 v2, v2, v26423; GFX12-GISEL-NEXT: v_pk_max_num_f16 v18, v18, v186424; GFX12-GISEL-NEXT: v_pk_max_num_f16 v3, v3, v36425; GFX12-GISEL-NEXT: v_pk_max_num_f16 v19, v19, v196426; GFX12-GISEL-NEXT: v_pk_max_num_f16 v4, v4, v46427; GFX12-GISEL-NEXT: v_pk_max_num_f16 v20, v20, v206428; GFX12-GISEL-NEXT: v_pk_max_num_f16 v5, v5, v56429; GFX12-GISEL-NEXT: v_pk_max_num_f16 v21, v21, v216430; GFX12-GISEL-NEXT: v_pk_max_num_f16 v6, v6, v66431; GFX12-GISEL-NEXT: v_pk_max_num_f16 v22, v22, v226432; GFX12-GISEL-NEXT: v_pk_max_num_f16 v7, v7, v76433; GFX12-GISEL-NEXT: v_pk_max_num_f16 v23, v23, v236434; GFX12-GISEL-NEXT: v_pk_max_num_f16 v8, v8, v86435; GFX12-GISEL-NEXT: v_pk_max_num_f16 v24, v24, v246436; GFX12-GISEL-NEXT: v_pk_max_num_f16 v9, v9, v96437; GFX12-GISEL-NEXT: v_pk_max_num_f16 v25, v25, v256438; GFX12-GISEL-NEXT: v_pk_max_num_f16 v10, v10, v106439; GFX12-GISEL-NEXT: v_pk_max_num_f16 v26, v26, v266440; GFX12-GISEL-NEXT: v_pk_max_num_f16 v11, v11, v116441; GFX12-GISEL-NEXT: v_pk_max_num_f16 v27, v27, v276442; GFX12-GISEL-NEXT: v_pk_max_num_f16 v12, v12, v126443; GFX12-GISEL-NEXT: v_pk_max_num_f16 v28, v28, v286444; GFX12-GISEL-NEXT: v_pk_max_num_f16 v13, v13, v136445; GFX12-GISEL-NEXT: v_pk_max_num_f16 v29, v29, v296446; GFX12-GISEL-NEXT: v_pk_max_num_f16 v14, v14, v146447; GFX12-GISEL-NEXT: v_pk_max_num_f16 v30, v30, v306448; GFX12-GISEL-NEXT: v_pk_max_num_f16 v15, v15, v156449; GFX12-GISEL-NEXT: v_pk_min_num_f16 v0, v0, v166450; GFX12-GISEL-NEXT: v_pk_min_num_f16 v1, v1, v176451; GFX12-GISEL-NEXT: v_pk_min_num_f16 v2, v2, v186452; GFX12-GISEL-NEXT: v_pk_min_num_f16 v3, v3, v196453; GFX12-GISEL-NEXT: v_pk_min_num_f16 v4, v4, v206454; GFX12-GISEL-NEXT: v_pk_min_num_f16 v5, v5, v216455; GFX12-GISEL-NEXT: v_pk_min_num_f16 v6, v6, v226456; GFX12-GISEL-NEXT: v_pk_min_num_f16 v7, v7, v236457; GFX12-GISEL-NEXT: v_pk_min_num_f16 v8, v8, v246458; GFX12-GISEL-NEXT: v_pk_min_num_f16 v9, v9, v256459; GFX12-GISEL-NEXT: v_pk_min_num_f16 v10, v10, v266460; GFX12-GISEL-NEXT: v_pk_min_num_f16 v11, v11, v276461; GFX12-GISEL-NEXT: v_pk_min_num_f16 v12, v12, v286462; GFX12-GISEL-NEXT: v_pk_min_num_f16 v13, v13, v296463; GFX12-GISEL-NEXT: v_pk_min_num_f16 v14, v14, v306464; GFX12-GISEL-NEXT: s_wait_loadcnt 0x06465; GFX12-GISEL-NEXT: v_pk_max_num_f16 v16, v31, v316466; GFX12-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)6467; GFX12-GISEL-NEXT: v_pk_min_num_f16 v15, v15, v166468; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]6469 %result = call <32 x half> @llvm.minimumnum.v32f16(<32 x half> %x, <32 x half> %y)6470 ret <32 x half> %result6471}6472 6473define <2 x float> @v_minimumnum_v2f32(<2 x float> %x, <2 x float> %y) {6474; GFX7-SDAG-LABEL: v_minimumnum_v2f32:6475; GFX7-SDAG: ; %bb.0:6476; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6477; GFX7-SDAG-NEXT: v_mul_f32_e32 v2, 1.0, v26478; GFX7-SDAG-NEXT: v_mul_f32_e32 v0, 1.0, v06479; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v26480; GFX7-SDAG-NEXT: v_mul_f32_e32 v2, 1.0, v36481; GFX7-SDAG-NEXT: v_mul_f32_e32 v1, 1.0, v16482; GFX7-SDAG-NEXT: v_min_f32_e32 v1, v1, v26483; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]6484;6485; GFX7-GISEL-LABEL: v_minimumnum_v2f32:6486; GFX7-GISEL: ; %bb.0:6487; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6488; GFX7-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v06489; GFX7-GISEL-NEXT: v_mul_f32_e32 v2, 1.0, v26490; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v26491; GFX7-GISEL-NEXT: v_mul_f32_e32 v1, 1.0, v16492; GFX7-GISEL-NEXT: v_mul_f32_e32 v2, 1.0, v36493; GFX7-GISEL-NEXT: v_min_f32_e32 v1, v1, v26494; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]6495;6496; GFX8-SDAG-LABEL: v_minimumnum_v2f32:6497; GFX8-SDAG: ; %bb.0:6498; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6499; GFX8-SDAG-NEXT: v_mul_f32_e32 v2, 1.0, v26500; GFX8-SDAG-NEXT: v_mul_f32_e32 v0, 1.0, v06501; GFX8-SDAG-NEXT: v_min_f32_e32 v0, v0, v26502; GFX8-SDAG-NEXT: v_mul_f32_e32 v2, 1.0, v36503; GFX8-SDAG-NEXT: v_mul_f32_e32 v1, 1.0, v16504; GFX8-SDAG-NEXT: v_min_f32_e32 v1, v1, v26505; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]6506;6507; GFX8-GISEL-LABEL: v_minimumnum_v2f32:6508; GFX8-GISEL: ; %bb.0:6509; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6510; GFX8-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v06511; GFX8-GISEL-NEXT: v_mul_f32_e32 v2, 1.0, v26512; GFX8-GISEL-NEXT: v_min_f32_e32 v0, v0, v26513; GFX8-GISEL-NEXT: v_mul_f32_e32 v1, 1.0, v16514; GFX8-GISEL-NEXT: v_mul_f32_e32 v2, 1.0, v36515; GFX8-GISEL-NEXT: v_min_f32_e32 v1, v1, v26516; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]6517;6518; GFX9-SDAG-LABEL: v_minimumnum_v2f32:6519; GFX9-SDAG: ; %bb.0:6520; GFX9-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6521; GFX9-SDAG-NEXT: v_max_f32_e32 v2, v2, v26522; GFX9-SDAG-NEXT: v_max_f32_e32 v0, v0, v06523; GFX9-SDAG-NEXT: v_min_f32_e32 v0, v0, v26524; GFX9-SDAG-NEXT: v_max_f32_e32 v2, v3, v36525; GFX9-SDAG-NEXT: v_max_f32_e32 v1, v1, v16526; GFX9-SDAG-NEXT: v_min_f32_e32 v1, v1, v26527; GFX9-SDAG-NEXT: s_setpc_b64 s[30:31]6528;6529; GFX9-GISEL-LABEL: v_minimumnum_v2f32:6530; GFX9-GISEL: ; %bb.0:6531; GFX9-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6532; GFX9-GISEL-NEXT: v_max_f32_e32 v0, v0, v06533; GFX9-GISEL-NEXT: v_max_f32_e32 v2, v2, v26534; GFX9-GISEL-NEXT: v_min_f32_e32 v0, v0, v26535; GFX9-GISEL-NEXT: v_max_f32_e32 v1, v1, v16536; GFX9-GISEL-NEXT: v_max_f32_e32 v2, v3, v36537; GFX9-GISEL-NEXT: v_min_f32_e32 v1, v1, v26538; GFX9-GISEL-NEXT: s_setpc_b64 s[30:31]6539;6540; GFX10-SDAG-LABEL: v_minimumnum_v2f32:6541; GFX10-SDAG: ; %bb.0:6542; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6543; GFX10-SDAG-NEXT: v_max_f32_e32 v2, v2, v26544; GFX10-SDAG-NEXT: v_max_f32_e32 v0, v0, v06545; GFX10-SDAG-NEXT: v_max_f32_e32 v3, v3, v36546; GFX10-SDAG-NEXT: v_max_f32_e32 v1, v1, v16547; GFX10-SDAG-NEXT: v_min_f32_e32 v0, v0, v26548; GFX10-SDAG-NEXT: v_min_f32_e32 v1, v1, v36549; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]6550;6551; GFX10-GISEL-LABEL: v_minimumnum_v2f32:6552; GFX10-GISEL: ; %bb.0:6553; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6554; GFX10-GISEL-NEXT: v_max_f32_e32 v0, v0, v06555; GFX10-GISEL-NEXT: v_max_f32_e32 v2, v2, v26556; GFX10-GISEL-NEXT: v_max_f32_e32 v1, v1, v16557; GFX10-GISEL-NEXT: v_max_f32_e32 v3, v3, v36558; GFX10-GISEL-NEXT: v_min_f32_e32 v0, v0, v26559; GFX10-GISEL-NEXT: v_min_f32_e32 v1, v1, v36560; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]6561;6562; GFX11-SDAG-LABEL: v_minimumnum_v2f32:6563; GFX11-SDAG: ; %bb.0:6564; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6565; GFX11-SDAG-NEXT: v_dual_max_f32 v2, v2, v2 :: v_dual_max_f32 v3, v3, v36566; GFX11-SDAG-NEXT: v_dual_max_f32 v0, v0, v0 :: v_dual_max_f32 v1, v1, v16567; GFX11-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)6568; GFX11-SDAG-NEXT: v_dual_min_f32 v0, v0, v2 :: v_dual_min_f32 v1, v1, v36569; GFX11-SDAG-NEXT: s_setpc_b64 s[30:31]6570;6571; GFX11-GISEL-LABEL: v_minimumnum_v2f32:6572; GFX11-GISEL: ; %bb.0:6573; GFX11-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6574; GFX11-GISEL-NEXT: v_dual_max_f32 v0, v0, v0 :: v_dual_max_f32 v1, v1, v16575; GFX11-GISEL-NEXT: v_dual_max_f32 v2, v2, v2 :: v_dual_max_f32 v3, v3, v36576; GFX11-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)6577; GFX11-GISEL-NEXT: v_dual_min_f32 v0, v0, v2 :: v_dual_min_f32 v1, v1, v36578; GFX11-GISEL-NEXT: s_setpc_b64 s[30:31]6579;6580; GFX12-SDAG-LABEL: v_minimumnum_v2f32:6581; GFX12-SDAG: ; %bb.0:6582; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x06583; GFX12-SDAG-NEXT: s_wait_expcnt 0x06584; GFX12-SDAG-NEXT: s_wait_samplecnt 0x06585; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x06586; GFX12-SDAG-NEXT: s_wait_kmcnt 0x06587; GFX12-SDAG-NEXT: v_dual_max_num_f32 v2, v2, v2 :: v_dual_max_num_f32 v3, v3, v36588; GFX12-SDAG-NEXT: v_dual_max_num_f32 v0, v0, v0 :: v_dual_max_num_f32 v1, v1, v16589; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)6590; GFX12-SDAG-NEXT: v_dual_min_num_f32 v0, v0, v2 :: v_dual_min_num_f32 v1, v1, v36591; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]6592;6593; GFX12-GISEL-LABEL: v_minimumnum_v2f32:6594; GFX12-GISEL: ; %bb.0:6595; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x06596; GFX12-GISEL-NEXT: s_wait_expcnt 0x06597; GFX12-GISEL-NEXT: s_wait_samplecnt 0x06598; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x06599; GFX12-GISEL-NEXT: s_wait_kmcnt 0x06600; GFX12-GISEL-NEXT: v_dual_max_num_f32 v0, v0, v0 :: v_dual_max_num_f32 v1, v1, v16601; GFX12-GISEL-NEXT: v_dual_max_num_f32 v2, v2, v2 :: v_dual_max_num_f32 v3, v3, v36602; GFX12-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)6603; GFX12-GISEL-NEXT: v_dual_min_num_f32 v0, v0, v2 :: v_dual_min_num_f32 v1, v1, v36604; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]6605 %result = call <2 x float> @llvm.minimumnum.v2f32(<2 x float> %x, <2 x float> %y)6606 ret <2 x float> %result6607}6608 6609define <2 x float> @v_minimumnum_v2f32_nnan(<2 x float> %x, <2 x float> %y) {6610; GFX7-LABEL: v_minimumnum_v2f32_nnan:6611; GFX7: ; %bb.0:6612; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6613; GFX7-NEXT: v_min_f32_e32 v0, v0, v26614; GFX7-NEXT: v_min_f32_e32 v1, v1, v36615; GFX7-NEXT: s_setpc_b64 s[30:31]6616;6617; GFX8-LABEL: v_minimumnum_v2f32_nnan:6618; GFX8: ; %bb.0:6619; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6620; GFX8-NEXT: v_min_f32_e32 v0, v0, v26621; GFX8-NEXT: v_min_f32_e32 v1, v1, v36622; GFX8-NEXT: s_setpc_b64 s[30:31]6623;6624; GFX9-LABEL: v_minimumnum_v2f32_nnan:6625; GFX9: ; %bb.0:6626; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6627; GFX9-NEXT: v_min_f32_e32 v0, v0, v26628; GFX9-NEXT: v_min_f32_e32 v1, v1, v36629; GFX9-NEXT: s_setpc_b64 s[30:31]6630;6631; GFX10-LABEL: v_minimumnum_v2f32_nnan:6632; GFX10: ; %bb.0:6633; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6634; GFX10-NEXT: v_min_f32_e32 v0, v0, v26635; GFX10-NEXT: v_min_f32_e32 v1, v1, v36636; GFX10-NEXT: s_setpc_b64 s[30:31]6637;6638; GFX11-LABEL: v_minimumnum_v2f32_nnan:6639; GFX11: ; %bb.0:6640; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6641; GFX11-NEXT: v_dual_min_f32 v0, v0, v2 :: v_dual_min_f32 v1, v1, v36642; GFX11-NEXT: s_setpc_b64 s[30:31]6643;6644; GFX12-LABEL: v_minimumnum_v2f32_nnan:6645; GFX12: ; %bb.0:6646; GFX12-NEXT: s_wait_loadcnt_dscnt 0x06647; GFX12-NEXT: s_wait_expcnt 0x06648; GFX12-NEXT: s_wait_samplecnt 0x06649; GFX12-NEXT: s_wait_bvhcnt 0x06650; GFX12-NEXT: s_wait_kmcnt 0x06651; GFX12-NEXT: v_dual_min_num_f32 v0, v0, v2 :: v_dual_min_num_f32 v1, v1, v36652; GFX12-NEXT: s_setpc_b64 s[30:31]6653 %result = call nnan <2 x float> @llvm.minimumnum.v2f32(<2 x float> %x, <2 x float> %y)6654 ret <2 x float> %result6655}6656 6657define <3 x float> @v_minimumnum_v3f32(<3 x float> %x, <3 x float> %y) {6658; GFX7-SDAG-LABEL: v_minimumnum_v3f32:6659; GFX7-SDAG: ; %bb.0:6660; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6661; GFX7-SDAG-NEXT: v_mul_f32_e32 v3, 1.0, v36662; GFX7-SDAG-NEXT: v_mul_f32_e32 v0, 1.0, v06663; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v36664; GFX7-SDAG-NEXT: v_mul_f32_e32 v3, 1.0, v46665; GFX7-SDAG-NEXT: v_mul_f32_e32 v1, 1.0, v16666; GFX7-SDAG-NEXT: v_min_f32_e32 v1, v1, v36667; GFX7-SDAG-NEXT: v_mul_f32_e32 v3, 1.0, v56668; GFX7-SDAG-NEXT: v_mul_f32_e32 v2, 1.0, v26669; GFX7-SDAG-NEXT: v_min_f32_e32 v2, v2, v36670; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]6671;6672; GFX7-GISEL-LABEL: v_minimumnum_v3f32:6673; GFX7-GISEL: ; %bb.0:6674; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6675; GFX7-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v06676; GFX7-GISEL-NEXT: v_mul_f32_e32 v3, 1.0, v36677; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v36678; GFX7-GISEL-NEXT: v_mul_f32_e32 v1, 1.0, v16679; GFX7-GISEL-NEXT: v_mul_f32_e32 v3, 1.0, v46680; GFX7-GISEL-NEXT: v_min_f32_e32 v1, v1, v36681; GFX7-GISEL-NEXT: v_mul_f32_e32 v2, 1.0, v26682; GFX7-GISEL-NEXT: v_mul_f32_e32 v3, 1.0, v56683; GFX7-GISEL-NEXT: v_min_f32_e32 v2, v2, v36684; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]6685;6686; GFX8-SDAG-LABEL: v_minimumnum_v3f32:6687; GFX8-SDAG: ; %bb.0:6688; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6689; GFX8-SDAG-NEXT: v_mul_f32_e32 v3, 1.0, v36690; GFX8-SDAG-NEXT: v_mul_f32_e32 v0, 1.0, v06691; GFX8-SDAG-NEXT: v_min_f32_e32 v0, v0, v36692; GFX8-SDAG-NEXT: v_mul_f32_e32 v3, 1.0, v46693; GFX8-SDAG-NEXT: v_mul_f32_e32 v1, 1.0, v16694; GFX8-SDAG-NEXT: v_min_f32_e32 v1, v1, v36695; GFX8-SDAG-NEXT: v_mul_f32_e32 v3, 1.0, v56696; GFX8-SDAG-NEXT: v_mul_f32_e32 v2, 1.0, v26697; GFX8-SDAG-NEXT: v_min_f32_e32 v2, v2, v36698; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]6699;6700; GFX8-GISEL-LABEL: v_minimumnum_v3f32:6701; GFX8-GISEL: ; %bb.0:6702; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6703; GFX8-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v06704; GFX8-GISEL-NEXT: v_mul_f32_e32 v3, 1.0, v36705; GFX8-GISEL-NEXT: v_min_f32_e32 v0, v0, v36706; GFX8-GISEL-NEXT: v_mul_f32_e32 v1, 1.0, v16707; GFX8-GISEL-NEXT: v_mul_f32_e32 v3, 1.0, v46708; GFX8-GISEL-NEXT: v_min_f32_e32 v1, v1, v36709; GFX8-GISEL-NEXT: v_mul_f32_e32 v2, 1.0, v26710; GFX8-GISEL-NEXT: v_mul_f32_e32 v3, 1.0, v56711; GFX8-GISEL-NEXT: v_min_f32_e32 v2, v2, v36712; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]6713;6714; GFX9-SDAG-LABEL: v_minimumnum_v3f32:6715; GFX9-SDAG: ; %bb.0:6716; GFX9-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6717; GFX9-SDAG-NEXT: v_max_f32_e32 v3, v3, v36718; GFX9-SDAG-NEXT: v_max_f32_e32 v0, v0, v06719; GFX9-SDAG-NEXT: v_min_f32_e32 v0, v0, v36720; GFX9-SDAG-NEXT: v_max_f32_e32 v3, v4, v46721; GFX9-SDAG-NEXT: v_max_f32_e32 v1, v1, v16722; GFX9-SDAG-NEXT: v_min_f32_e32 v1, v1, v36723; GFX9-SDAG-NEXT: v_max_f32_e32 v3, v5, v56724; GFX9-SDAG-NEXT: v_max_f32_e32 v2, v2, v26725; GFX9-SDAG-NEXT: v_min_f32_e32 v2, v2, v36726; GFX9-SDAG-NEXT: s_setpc_b64 s[30:31]6727;6728; GFX9-GISEL-LABEL: v_minimumnum_v3f32:6729; GFX9-GISEL: ; %bb.0:6730; GFX9-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6731; GFX9-GISEL-NEXT: v_max_f32_e32 v0, v0, v06732; GFX9-GISEL-NEXT: v_max_f32_e32 v3, v3, v36733; GFX9-GISEL-NEXT: v_min_f32_e32 v0, v0, v36734; GFX9-GISEL-NEXT: v_max_f32_e32 v1, v1, v16735; GFX9-GISEL-NEXT: v_max_f32_e32 v3, v4, v46736; GFX9-GISEL-NEXT: v_min_f32_e32 v1, v1, v36737; GFX9-GISEL-NEXT: v_max_f32_e32 v2, v2, v26738; GFX9-GISEL-NEXT: v_max_f32_e32 v3, v5, v56739; GFX9-GISEL-NEXT: v_min_f32_e32 v2, v2, v36740; GFX9-GISEL-NEXT: s_setpc_b64 s[30:31]6741;6742; GFX10-SDAG-LABEL: v_minimumnum_v3f32:6743; GFX10-SDAG: ; %bb.0:6744; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6745; GFX10-SDAG-NEXT: v_max_f32_e32 v3, v3, v36746; GFX10-SDAG-NEXT: v_max_f32_e32 v0, v0, v06747; GFX10-SDAG-NEXT: v_max_f32_e32 v4, v4, v46748; GFX10-SDAG-NEXT: v_max_f32_e32 v1, v1, v16749; GFX10-SDAG-NEXT: v_max_f32_e32 v5, v5, v56750; GFX10-SDAG-NEXT: v_max_f32_e32 v2, v2, v26751; GFX10-SDAG-NEXT: v_min_f32_e32 v0, v0, v36752; GFX10-SDAG-NEXT: v_min_f32_e32 v1, v1, v46753; GFX10-SDAG-NEXT: v_min_f32_e32 v2, v2, v56754; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]6755;6756; GFX10-GISEL-LABEL: v_minimumnum_v3f32:6757; GFX10-GISEL: ; %bb.0:6758; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6759; GFX10-GISEL-NEXT: v_max_f32_e32 v0, v0, v06760; GFX10-GISEL-NEXT: v_max_f32_e32 v3, v3, v36761; GFX10-GISEL-NEXT: v_max_f32_e32 v1, v1, v16762; GFX10-GISEL-NEXT: v_max_f32_e32 v4, v4, v46763; GFX10-GISEL-NEXT: v_max_f32_e32 v2, v2, v26764; GFX10-GISEL-NEXT: v_max_f32_e32 v5, v5, v56765; GFX10-GISEL-NEXT: v_min_f32_e32 v0, v0, v36766; GFX10-GISEL-NEXT: v_min_f32_e32 v1, v1, v46767; GFX10-GISEL-NEXT: v_min_f32_e32 v2, v2, v56768; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]6769;6770; GFX11-SDAG-LABEL: v_minimumnum_v3f32:6771; GFX11-SDAG: ; %bb.0:6772; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6773; GFX11-SDAG-NEXT: v_dual_max_f32 v3, v3, v3 :: v_dual_max_f32 v0, v0, v06774; GFX11-SDAG-NEXT: v_dual_max_f32 v4, v4, v4 :: v_dual_max_f32 v1, v1, v16775; GFX11-SDAG-NEXT: v_dual_max_f32 v5, v5, v5 :: v_dual_max_f32 v2, v2, v26776; GFX11-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)6777; GFX11-SDAG-NEXT: v_dual_min_f32 v0, v0, v3 :: v_dual_min_f32 v1, v1, v46778; GFX11-SDAG-NEXT: v_min_f32_e32 v2, v2, v56779; GFX11-SDAG-NEXT: s_setpc_b64 s[30:31]6780;6781; GFX11-GISEL-LABEL: v_minimumnum_v3f32:6782; GFX11-GISEL: ; %bb.0:6783; GFX11-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6784; GFX11-GISEL-NEXT: v_dual_max_f32 v0, v0, v0 :: v_dual_max_f32 v3, v3, v36785; GFX11-GISEL-NEXT: v_dual_max_f32 v1, v1, v1 :: v_dual_max_f32 v4, v4, v46786; GFX11-GISEL-NEXT: v_dual_max_f32 v2, v2, v2 :: v_dual_max_f32 v5, v5, v56787; GFX11-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)6788; GFX11-GISEL-NEXT: v_dual_min_f32 v0, v0, v3 :: v_dual_min_f32 v1, v1, v46789; GFX11-GISEL-NEXT: v_min_f32_e32 v2, v2, v56790; GFX11-GISEL-NEXT: s_setpc_b64 s[30:31]6791;6792; GFX12-SDAG-LABEL: v_minimumnum_v3f32:6793; GFX12-SDAG: ; %bb.0:6794; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x06795; GFX12-SDAG-NEXT: s_wait_expcnt 0x06796; GFX12-SDAG-NEXT: s_wait_samplecnt 0x06797; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x06798; GFX12-SDAG-NEXT: s_wait_kmcnt 0x06799; GFX12-SDAG-NEXT: v_dual_max_num_f32 v3, v3, v3 :: v_dual_max_num_f32 v0, v0, v06800; GFX12-SDAG-NEXT: v_dual_max_num_f32 v4, v4, v4 :: v_dual_max_num_f32 v1, v1, v16801; GFX12-SDAG-NEXT: v_dual_max_num_f32 v5, v5, v5 :: v_dual_max_num_f32 v2, v2, v26802; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)6803; GFX12-SDAG-NEXT: v_dual_min_num_f32 v0, v0, v3 :: v_dual_min_num_f32 v1, v1, v46804; GFX12-SDAG-NEXT: v_min_num_f32_e32 v2, v2, v56805; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]6806;6807; GFX12-GISEL-LABEL: v_minimumnum_v3f32:6808; GFX12-GISEL: ; %bb.0:6809; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x06810; GFX12-GISEL-NEXT: s_wait_expcnt 0x06811; GFX12-GISEL-NEXT: s_wait_samplecnt 0x06812; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x06813; GFX12-GISEL-NEXT: s_wait_kmcnt 0x06814; GFX12-GISEL-NEXT: v_dual_max_num_f32 v0, v0, v0 :: v_dual_max_num_f32 v3, v3, v36815; GFX12-GISEL-NEXT: v_dual_max_num_f32 v1, v1, v1 :: v_dual_max_num_f32 v4, v4, v46816; GFX12-GISEL-NEXT: v_dual_max_num_f32 v2, v2, v2 :: v_dual_max_num_f32 v5, v5, v56817; GFX12-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)6818; GFX12-GISEL-NEXT: v_dual_min_num_f32 v0, v0, v3 :: v_dual_min_num_f32 v1, v1, v46819; GFX12-GISEL-NEXT: v_min_num_f32_e32 v2, v2, v56820; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]6821 %result = call <3 x float> @llvm.minimumnum.v3f32(<3 x float> %x, <3 x float> %y)6822 ret <3 x float> %result6823}6824 6825define <3 x float> @v_minimumnum_v3f32_nnan(<3 x float> %x, <3 x float> %y) {6826; GFX7-LABEL: v_minimumnum_v3f32_nnan:6827; GFX7: ; %bb.0:6828; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6829; GFX7-NEXT: v_min_f32_e32 v0, v0, v36830; GFX7-NEXT: v_min_f32_e32 v1, v1, v46831; GFX7-NEXT: v_min_f32_e32 v2, v2, v56832; GFX7-NEXT: s_setpc_b64 s[30:31]6833;6834; GFX8-LABEL: v_minimumnum_v3f32_nnan:6835; GFX8: ; %bb.0:6836; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6837; GFX8-NEXT: v_min_f32_e32 v0, v0, v36838; GFX8-NEXT: v_min_f32_e32 v1, v1, v46839; GFX8-NEXT: v_min_f32_e32 v2, v2, v56840; GFX8-NEXT: s_setpc_b64 s[30:31]6841;6842; GFX9-LABEL: v_minimumnum_v3f32_nnan:6843; GFX9: ; %bb.0:6844; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6845; GFX9-NEXT: v_min_f32_e32 v0, v0, v36846; GFX9-NEXT: v_min_f32_e32 v1, v1, v46847; GFX9-NEXT: v_min_f32_e32 v2, v2, v56848; GFX9-NEXT: s_setpc_b64 s[30:31]6849;6850; GFX10-LABEL: v_minimumnum_v3f32_nnan:6851; GFX10: ; %bb.0:6852; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6853; GFX10-NEXT: v_min_f32_e32 v0, v0, v36854; GFX10-NEXT: v_min_f32_e32 v1, v1, v46855; GFX10-NEXT: v_min_f32_e32 v2, v2, v56856; GFX10-NEXT: s_setpc_b64 s[30:31]6857;6858; GFX11-LABEL: v_minimumnum_v3f32_nnan:6859; GFX11: ; %bb.0:6860; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6861; GFX11-NEXT: v_dual_min_f32 v0, v0, v3 :: v_dual_min_f32 v1, v1, v46862; GFX11-NEXT: v_min_f32_e32 v2, v2, v56863; GFX11-NEXT: s_setpc_b64 s[30:31]6864;6865; GFX12-LABEL: v_minimumnum_v3f32_nnan:6866; GFX12: ; %bb.0:6867; GFX12-NEXT: s_wait_loadcnt_dscnt 0x06868; GFX12-NEXT: s_wait_expcnt 0x06869; GFX12-NEXT: s_wait_samplecnt 0x06870; GFX12-NEXT: s_wait_bvhcnt 0x06871; GFX12-NEXT: s_wait_kmcnt 0x06872; GFX12-NEXT: v_dual_min_num_f32 v0, v0, v3 :: v_dual_min_num_f32 v1, v1, v46873; GFX12-NEXT: v_min_num_f32_e32 v2, v2, v56874; GFX12-NEXT: s_setpc_b64 s[30:31]6875 %result = call nnan <3 x float> @llvm.minimumnum.v3f32(<3 x float> %x, <3 x float> %y)6876 ret <3 x float> %result6877}6878 6879define <4 x float> @v_minimumnum_v4f32(<4 x float> %x, <4 x float> %y) {6880; GFX7-SDAG-LABEL: v_minimumnum_v4f32:6881; GFX7-SDAG: ; %bb.0:6882; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6883; GFX7-SDAG-NEXT: v_mul_f32_e32 v4, 1.0, v46884; GFX7-SDAG-NEXT: v_mul_f32_e32 v0, 1.0, v06885; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v46886; GFX7-SDAG-NEXT: v_mul_f32_e32 v4, 1.0, v56887; GFX7-SDAG-NEXT: v_mul_f32_e32 v1, 1.0, v16888; GFX7-SDAG-NEXT: v_min_f32_e32 v1, v1, v46889; GFX7-SDAG-NEXT: v_mul_f32_e32 v4, 1.0, v66890; GFX7-SDAG-NEXT: v_mul_f32_e32 v2, 1.0, v26891; GFX7-SDAG-NEXT: v_min_f32_e32 v2, v2, v46892; GFX7-SDAG-NEXT: v_mul_f32_e32 v4, 1.0, v76893; GFX7-SDAG-NEXT: v_mul_f32_e32 v3, 1.0, v36894; GFX7-SDAG-NEXT: v_min_f32_e32 v3, v3, v46895; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]6896;6897; GFX7-GISEL-LABEL: v_minimumnum_v4f32:6898; GFX7-GISEL: ; %bb.0:6899; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6900; GFX7-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v06901; GFX7-GISEL-NEXT: v_mul_f32_e32 v4, 1.0, v46902; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v46903; GFX7-GISEL-NEXT: v_mul_f32_e32 v1, 1.0, v16904; GFX7-GISEL-NEXT: v_mul_f32_e32 v4, 1.0, v56905; GFX7-GISEL-NEXT: v_min_f32_e32 v1, v1, v46906; GFX7-GISEL-NEXT: v_mul_f32_e32 v2, 1.0, v26907; GFX7-GISEL-NEXT: v_mul_f32_e32 v4, 1.0, v66908; GFX7-GISEL-NEXT: v_min_f32_e32 v2, v2, v46909; GFX7-GISEL-NEXT: v_mul_f32_e32 v3, 1.0, v36910; GFX7-GISEL-NEXT: v_mul_f32_e32 v4, 1.0, v76911; GFX7-GISEL-NEXT: v_min_f32_e32 v3, v3, v46912; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]6913;6914; GFX8-SDAG-LABEL: v_minimumnum_v4f32:6915; GFX8-SDAG: ; %bb.0:6916; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6917; GFX8-SDAG-NEXT: v_mul_f32_e32 v4, 1.0, v46918; GFX8-SDAG-NEXT: v_mul_f32_e32 v0, 1.0, v06919; GFX8-SDAG-NEXT: v_min_f32_e32 v0, v0, v46920; GFX8-SDAG-NEXT: v_mul_f32_e32 v4, 1.0, v56921; GFX8-SDAG-NEXT: v_mul_f32_e32 v1, 1.0, v16922; GFX8-SDAG-NEXT: v_min_f32_e32 v1, v1, v46923; GFX8-SDAG-NEXT: v_mul_f32_e32 v4, 1.0, v66924; GFX8-SDAG-NEXT: v_mul_f32_e32 v2, 1.0, v26925; GFX8-SDAG-NEXT: v_min_f32_e32 v2, v2, v46926; GFX8-SDAG-NEXT: v_mul_f32_e32 v4, 1.0, v76927; GFX8-SDAG-NEXT: v_mul_f32_e32 v3, 1.0, v36928; GFX8-SDAG-NEXT: v_min_f32_e32 v3, v3, v46929; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]6930;6931; GFX8-GISEL-LABEL: v_minimumnum_v4f32:6932; GFX8-GISEL: ; %bb.0:6933; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6934; GFX8-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v06935; GFX8-GISEL-NEXT: v_mul_f32_e32 v4, 1.0, v46936; GFX8-GISEL-NEXT: v_min_f32_e32 v0, v0, v46937; GFX8-GISEL-NEXT: v_mul_f32_e32 v1, 1.0, v16938; GFX8-GISEL-NEXT: v_mul_f32_e32 v4, 1.0, v56939; GFX8-GISEL-NEXT: v_min_f32_e32 v1, v1, v46940; GFX8-GISEL-NEXT: v_mul_f32_e32 v2, 1.0, v26941; GFX8-GISEL-NEXT: v_mul_f32_e32 v4, 1.0, v66942; GFX8-GISEL-NEXT: v_min_f32_e32 v2, v2, v46943; GFX8-GISEL-NEXT: v_mul_f32_e32 v3, 1.0, v36944; GFX8-GISEL-NEXT: v_mul_f32_e32 v4, 1.0, v76945; GFX8-GISEL-NEXT: v_min_f32_e32 v3, v3, v46946; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]6947;6948; GFX9-SDAG-LABEL: v_minimumnum_v4f32:6949; GFX9-SDAG: ; %bb.0:6950; GFX9-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6951; GFX9-SDAG-NEXT: v_max_f32_e32 v4, v4, v46952; GFX9-SDAG-NEXT: v_max_f32_e32 v0, v0, v06953; GFX9-SDAG-NEXT: v_min_f32_e32 v0, v0, v46954; GFX9-SDAG-NEXT: v_max_f32_e32 v4, v5, v56955; GFX9-SDAG-NEXT: v_max_f32_e32 v1, v1, v16956; GFX9-SDAG-NEXT: v_min_f32_e32 v1, v1, v46957; GFX9-SDAG-NEXT: v_max_f32_e32 v4, v6, v66958; GFX9-SDAG-NEXT: v_max_f32_e32 v2, v2, v26959; GFX9-SDAG-NEXT: v_min_f32_e32 v2, v2, v46960; GFX9-SDAG-NEXT: v_max_f32_e32 v4, v7, v76961; GFX9-SDAG-NEXT: v_max_f32_e32 v3, v3, v36962; GFX9-SDAG-NEXT: v_min_f32_e32 v3, v3, v46963; GFX9-SDAG-NEXT: s_setpc_b64 s[30:31]6964;6965; GFX9-GISEL-LABEL: v_minimumnum_v4f32:6966; GFX9-GISEL: ; %bb.0:6967; GFX9-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6968; GFX9-GISEL-NEXT: v_max_f32_e32 v0, v0, v06969; GFX9-GISEL-NEXT: v_max_f32_e32 v4, v4, v46970; GFX9-GISEL-NEXT: v_min_f32_e32 v0, v0, v46971; GFX9-GISEL-NEXT: v_max_f32_e32 v1, v1, v16972; GFX9-GISEL-NEXT: v_max_f32_e32 v4, v5, v56973; GFX9-GISEL-NEXT: v_min_f32_e32 v1, v1, v46974; GFX9-GISEL-NEXT: v_max_f32_e32 v2, v2, v26975; GFX9-GISEL-NEXT: v_max_f32_e32 v4, v6, v66976; GFX9-GISEL-NEXT: v_min_f32_e32 v2, v2, v46977; GFX9-GISEL-NEXT: v_max_f32_e32 v3, v3, v36978; GFX9-GISEL-NEXT: v_max_f32_e32 v4, v7, v76979; GFX9-GISEL-NEXT: v_min_f32_e32 v3, v3, v46980; GFX9-GISEL-NEXT: s_setpc_b64 s[30:31]6981;6982; GFX10-SDAG-LABEL: v_minimumnum_v4f32:6983; GFX10-SDAG: ; %bb.0:6984; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6985; GFX10-SDAG-NEXT: v_max_f32_e32 v4, v4, v46986; GFX10-SDAG-NEXT: v_max_f32_e32 v0, v0, v06987; GFX10-SDAG-NEXT: v_max_f32_e32 v5, v5, v56988; GFX10-SDAG-NEXT: v_max_f32_e32 v1, v1, v16989; GFX10-SDAG-NEXT: v_max_f32_e32 v6, v6, v66990; GFX10-SDAG-NEXT: v_max_f32_e32 v2, v2, v26991; GFX10-SDAG-NEXT: v_max_f32_e32 v7, v7, v76992; GFX10-SDAG-NEXT: v_max_f32_e32 v3, v3, v36993; GFX10-SDAG-NEXT: v_min_f32_e32 v0, v0, v46994; GFX10-SDAG-NEXT: v_min_f32_e32 v1, v1, v56995; GFX10-SDAG-NEXT: v_min_f32_e32 v2, v2, v66996; GFX10-SDAG-NEXT: v_min_f32_e32 v3, v3, v76997; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]6998;6999; GFX10-GISEL-LABEL: v_minimumnum_v4f32:7000; GFX10-GISEL: ; %bb.0:7001; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7002; GFX10-GISEL-NEXT: v_max_f32_e32 v0, v0, v07003; GFX10-GISEL-NEXT: v_max_f32_e32 v4, v4, v47004; GFX10-GISEL-NEXT: v_max_f32_e32 v1, v1, v17005; GFX10-GISEL-NEXT: v_max_f32_e32 v5, v5, v57006; GFX10-GISEL-NEXT: v_max_f32_e32 v2, v2, v27007; GFX10-GISEL-NEXT: v_max_f32_e32 v6, v6, v67008; GFX10-GISEL-NEXT: v_max_f32_e32 v3, v3, v37009; GFX10-GISEL-NEXT: v_max_f32_e32 v7, v7, v77010; GFX10-GISEL-NEXT: v_min_f32_e32 v0, v0, v47011; GFX10-GISEL-NEXT: v_min_f32_e32 v1, v1, v57012; GFX10-GISEL-NEXT: v_min_f32_e32 v2, v2, v67013; GFX10-GISEL-NEXT: v_min_f32_e32 v3, v3, v77014; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]7015;7016; GFX11-SDAG-LABEL: v_minimumnum_v4f32:7017; GFX11-SDAG: ; %bb.0:7018; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7019; GFX11-SDAG-NEXT: v_dual_max_f32 v4, v4, v4 :: v_dual_max_f32 v5, v5, v57020; GFX11-SDAG-NEXT: v_dual_max_f32 v0, v0, v0 :: v_dual_max_f32 v1, v1, v17021; GFX11-SDAG-NEXT: v_dual_max_f32 v6, v6, v6 :: v_dual_max_f32 v7, v7, v77022; GFX11-SDAG-NEXT: v_dual_max_f32 v2, v2, v2 :: v_dual_max_f32 v3, v3, v37023; GFX11-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)7024; GFX11-SDAG-NEXT: v_dual_min_f32 v0, v0, v4 :: v_dual_min_f32 v1, v1, v57025; GFX11-SDAG-NEXT: v_dual_min_f32 v2, v2, v6 :: v_dual_min_f32 v3, v3, v77026; GFX11-SDAG-NEXT: s_setpc_b64 s[30:31]7027;7028; GFX11-GISEL-LABEL: v_minimumnum_v4f32:7029; GFX11-GISEL: ; %bb.0:7030; GFX11-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7031; GFX11-GISEL-NEXT: v_dual_max_f32 v0, v0, v0 :: v_dual_max_f32 v1, v1, v17032; GFX11-GISEL-NEXT: v_dual_max_f32 v4, v4, v4 :: v_dual_max_f32 v5, v5, v57033; GFX11-GISEL-NEXT: v_dual_max_f32 v2, v2, v2 :: v_dual_max_f32 v3, v3, v37034; GFX11-GISEL-NEXT: v_dual_max_f32 v6, v6, v6 :: v_dual_max_f32 v7, v7, v77035; GFX11-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)7036; GFX11-GISEL-NEXT: v_dual_min_f32 v0, v0, v4 :: v_dual_min_f32 v1, v1, v57037; GFX11-GISEL-NEXT: v_dual_min_f32 v2, v2, v6 :: v_dual_min_f32 v3, v3, v77038; GFX11-GISEL-NEXT: s_setpc_b64 s[30:31]7039;7040; GFX12-SDAG-LABEL: v_minimumnum_v4f32:7041; GFX12-SDAG: ; %bb.0:7042; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x07043; GFX12-SDAG-NEXT: s_wait_expcnt 0x07044; GFX12-SDAG-NEXT: s_wait_samplecnt 0x07045; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x07046; GFX12-SDAG-NEXT: s_wait_kmcnt 0x07047; GFX12-SDAG-NEXT: v_dual_max_num_f32 v4, v4, v4 :: v_dual_max_num_f32 v5, v5, v57048; GFX12-SDAG-NEXT: v_dual_max_num_f32 v0, v0, v0 :: v_dual_max_num_f32 v1, v1, v17049; GFX12-SDAG-NEXT: v_dual_max_num_f32 v6, v6, v6 :: v_dual_max_num_f32 v7, v7, v77050; GFX12-SDAG-NEXT: v_dual_max_num_f32 v2, v2, v2 :: v_dual_max_num_f32 v3, v3, v37051; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)7052; GFX12-SDAG-NEXT: v_dual_min_num_f32 v0, v0, v4 :: v_dual_min_num_f32 v1, v1, v57053; GFX12-SDAG-NEXT: v_dual_min_num_f32 v2, v2, v6 :: v_dual_min_num_f32 v3, v3, v77054; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]7055;7056; GFX12-GISEL-LABEL: v_minimumnum_v4f32:7057; GFX12-GISEL: ; %bb.0:7058; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x07059; GFX12-GISEL-NEXT: s_wait_expcnt 0x07060; GFX12-GISEL-NEXT: s_wait_samplecnt 0x07061; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x07062; GFX12-GISEL-NEXT: s_wait_kmcnt 0x07063; GFX12-GISEL-NEXT: v_dual_max_num_f32 v0, v0, v0 :: v_dual_max_num_f32 v1, v1, v17064; GFX12-GISEL-NEXT: v_dual_max_num_f32 v4, v4, v4 :: v_dual_max_num_f32 v5, v5, v57065; GFX12-GISEL-NEXT: v_dual_max_num_f32 v2, v2, v2 :: v_dual_max_num_f32 v3, v3, v37066; GFX12-GISEL-NEXT: v_dual_max_num_f32 v6, v6, v6 :: v_dual_max_num_f32 v7, v7, v77067; GFX12-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)7068; GFX12-GISEL-NEXT: v_dual_min_num_f32 v0, v0, v4 :: v_dual_min_num_f32 v1, v1, v57069; GFX12-GISEL-NEXT: v_dual_min_num_f32 v2, v2, v6 :: v_dual_min_num_f32 v3, v3, v77070; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]7071 %result = call <4 x float> @llvm.minimumnum.v4f32(<4 x float> %x, <4 x float> %y)7072 ret <4 x float> %result7073}7074 7075define <4 x float> @v_minimumnum_v4f32_nnan(<4 x float> %x, <4 x float> %y) {7076; GFX7-LABEL: v_minimumnum_v4f32_nnan:7077; GFX7: ; %bb.0:7078; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7079; GFX7-NEXT: v_min_f32_e32 v0, v0, v47080; GFX7-NEXT: v_min_f32_e32 v1, v1, v57081; GFX7-NEXT: v_min_f32_e32 v2, v2, v67082; GFX7-NEXT: v_min_f32_e32 v3, v3, v77083; GFX7-NEXT: s_setpc_b64 s[30:31]7084;7085; GFX8-LABEL: v_minimumnum_v4f32_nnan:7086; GFX8: ; %bb.0:7087; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7088; GFX8-NEXT: v_min_f32_e32 v0, v0, v47089; GFX8-NEXT: v_min_f32_e32 v1, v1, v57090; GFX8-NEXT: v_min_f32_e32 v2, v2, v67091; GFX8-NEXT: v_min_f32_e32 v3, v3, v77092; GFX8-NEXT: s_setpc_b64 s[30:31]7093;7094; GFX9-LABEL: v_minimumnum_v4f32_nnan:7095; GFX9: ; %bb.0:7096; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7097; GFX9-NEXT: v_min_f32_e32 v0, v0, v47098; GFX9-NEXT: v_min_f32_e32 v1, v1, v57099; GFX9-NEXT: v_min_f32_e32 v2, v2, v67100; GFX9-NEXT: v_min_f32_e32 v3, v3, v77101; GFX9-NEXT: s_setpc_b64 s[30:31]7102;7103; GFX10-LABEL: v_minimumnum_v4f32_nnan:7104; GFX10: ; %bb.0:7105; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7106; GFX10-NEXT: v_min_f32_e32 v0, v0, v47107; GFX10-NEXT: v_min_f32_e32 v1, v1, v57108; GFX10-NEXT: v_min_f32_e32 v2, v2, v67109; GFX10-NEXT: v_min_f32_e32 v3, v3, v77110; GFX10-NEXT: s_setpc_b64 s[30:31]7111;7112; GFX11-LABEL: v_minimumnum_v4f32_nnan:7113; GFX11: ; %bb.0:7114; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7115; GFX11-NEXT: v_dual_min_f32 v0, v0, v4 :: v_dual_min_f32 v1, v1, v57116; GFX11-NEXT: v_dual_min_f32 v2, v2, v6 :: v_dual_min_f32 v3, v3, v77117; GFX11-NEXT: s_setpc_b64 s[30:31]7118;7119; GFX12-LABEL: v_minimumnum_v4f32_nnan:7120; GFX12: ; %bb.0:7121; GFX12-NEXT: s_wait_loadcnt_dscnt 0x07122; GFX12-NEXT: s_wait_expcnt 0x07123; GFX12-NEXT: s_wait_samplecnt 0x07124; GFX12-NEXT: s_wait_bvhcnt 0x07125; GFX12-NEXT: s_wait_kmcnt 0x07126; GFX12-NEXT: v_dual_min_num_f32 v0, v0, v4 :: v_dual_min_num_f32 v1, v1, v57127; GFX12-NEXT: v_dual_min_num_f32 v2, v2, v6 :: v_dual_min_num_f32 v3, v3, v77128; GFX12-NEXT: s_setpc_b64 s[30:31]7129 %result = call nnan <4 x float> @llvm.minimumnum.v4f32(<4 x float> %x, <4 x float> %y)7130 ret <4 x float> %result7131}7132 7133define <2 x double> @v_minimumnum_v2f64(<2 x double> %x, <2 x double> %y) {7134; GFX7-SDAG-LABEL: v_minimumnum_v2f64:7135; GFX7-SDAG: ; %bb.0:7136; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7137; GFX7-SDAG-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7138; GFX7-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7139; GFX7-SDAG-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7140; GFX7-SDAG-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7141; GFX7-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[4:5]7142; GFX7-SDAG-NEXT: v_min_f64 v[2:3], v[2:3], v[6:7]7143; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]7144;7145; GFX7-GISEL-LABEL: v_minimumnum_v2f64:7146; GFX7-GISEL: ; %bb.0:7147; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7148; GFX7-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7149; GFX7-GISEL-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7150; GFX7-GISEL-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7151; GFX7-GISEL-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7152; GFX7-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[4:5]7153; GFX7-GISEL-NEXT: v_min_f64 v[2:3], v[2:3], v[6:7]7154; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]7155;7156; GFX8-SDAG-LABEL: v_minimumnum_v2f64:7157; GFX8-SDAG: ; %bb.0:7158; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7159; GFX8-SDAG-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7160; GFX8-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7161; GFX8-SDAG-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7162; GFX8-SDAG-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7163; GFX8-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[4:5]7164; GFX8-SDAG-NEXT: v_min_f64 v[2:3], v[2:3], v[6:7]7165; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]7166;7167; GFX8-GISEL-LABEL: v_minimumnum_v2f64:7168; GFX8-GISEL: ; %bb.0:7169; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7170; GFX8-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7171; GFX8-GISEL-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7172; GFX8-GISEL-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7173; GFX8-GISEL-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7174; GFX8-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[4:5]7175; GFX8-GISEL-NEXT: v_min_f64 v[2:3], v[2:3], v[6:7]7176; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]7177;7178; GFX900-SDAG-LABEL: v_minimumnum_v2f64:7179; GFX900-SDAG: ; %bb.0:7180; GFX900-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7181; GFX900-SDAG-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7182; GFX900-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7183; GFX900-SDAG-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7184; GFX900-SDAG-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7185; GFX900-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[4:5]7186; GFX900-SDAG-NEXT: v_min_f64 v[2:3], v[2:3], v[6:7]7187; GFX900-SDAG-NEXT: s_setpc_b64 s[30:31]7188;7189; GFX900-GISEL-LABEL: v_minimumnum_v2f64:7190; GFX900-GISEL: ; %bb.0:7191; GFX900-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7192; GFX900-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7193; GFX900-GISEL-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7194; GFX900-GISEL-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7195; GFX900-GISEL-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7196; GFX900-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[4:5]7197; GFX900-GISEL-NEXT: v_min_f64 v[2:3], v[2:3], v[6:7]7198; GFX900-GISEL-NEXT: s_setpc_b64 s[30:31]7199;7200; GFX950-SDAG-LABEL: v_minimumnum_v2f64:7201; GFX950-SDAG: ; %bb.0:7202; GFX950-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7203; GFX950-SDAG-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7204; GFX950-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7205; GFX950-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[4:5]7206; GFX950-SDAG-NEXT: v_max_f64 v[4:5], v[6:7], v[6:7]7207; GFX950-SDAG-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7208; GFX950-SDAG-NEXT: v_min_f64 v[2:3], v[2:3], v[4:5]7209; GFX950-SDAG-NEXT: s_setpc_b64 s[30:31]7210;7211; GFX950-GISEL-LABEL: v_minimumnum_v2f64:7212; GFX950-GISEL: ; %bb.0:7213; GFX950-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7214; GFX950-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7215; GFX950-GISEL-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7216; GFX950-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[4:5]7217; GFX950-GISEL-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7218; GFX950-GISEL-NEXT: v_max_f64 v[4:5], v[6:7], v[6:7]7219; GFX950-GISEL-NEXT: v_min_f64 v[2:3], v[2:3], v[4:5]7220; GFX950-GISEL-NEXT: s_setpc_b64 s[30:31]7221;7222; GFX10-SDAG-LABEL: v_minimumnum_v2f64:7223; GFX10-SDAG: ; %bb.0:7224; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7225; GFX10-SDAG-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7226; GFX10-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7227; GFX10-SDAG-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7228; GFX10-SDAG-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7229; GFX10-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[4:5]7230; GFX10-SDAG-NEXT: v_min_f64 v[2:3], v[2:3], v[6:7]7231; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]7232;7233; GFX10-GISEL-LABEL: v_minimumnum_v2f64:7234; GFX10-GISEL: ; %bb.0:7235; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7236; GFX10-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7237; GFX10-GISEL-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7238; GFX10-GISEL-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7239; GFX10-GISEL-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7240; GFX10-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[4:5]7241; GFX10-GISEL-NEXT: v_min_f64 v[2:3], v[2:3], v[6:7]7242; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]7243;7244; GFX11-SDAG-LABEL: v_minimumnum_v2f64:7245; GFX11-SDAG: ; %bb.0:7246; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7247; GFX11-SDAG-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7248; GFX11-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7249; GFX11-SDAG-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7250; GFX11-SDAG-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7251; GFX11-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)7252; GFX11-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[4:5]7253; GFX11-SDAG-NEXT: v_min_f64 v[2:3], v[2:3], v[6:7]7254; GFX11-SDAG-NEXT: s_setpc_b64 s[30:31]7255;7256; GFX11-GISEL-LABEL: v_minimumnum_v2f64:7257; GFX11-GISEL: ; %bb.0:7258; GFX11-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7259; GFX11-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7260; GFX11-GISEL-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7261; GFX11-GISEL-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7262; GFX11-GISEL-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7263; GFX11-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)7264; GFX11-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[4:5]7265; GFX11-GISEL-NEXT: v_min_f64 v[2:3], v[2:3], v[6:7]7266; GFX11-GISEL-NEXT: s_setpc_b64 s[30:31]7267;7268; GFX12-SDAG-LABEL: v_minimumnum_v2f64:7269; GFX12-SDAG: ; %bb.0:7270; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x07271; GFX12-SDAG-NEXT: s_wait_expcnt 0x07272; GFX12-SDAG-NEXT: s_wait_samplecnt 0x07273; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x07274; GFX12-SDAG-NEXT: s_wait_kmcnt 0x07275; GFX12-SDAG-NEXT: v_max_num_f64_e32 v[4:5], v[4:5], v[4:5]7276; GFX12-SDAG-NEXT: v_max_num_f64_e32 v[0:1], v[0:1], v[0:1]7277; GFX12-SDAG-NEXT: v_max_num_f64_e32 v[6:7], v[6:7], v[6:7]7278; GFX12-SDAG-NEXT: v_max_num_f64_e32 v[2:3], v[2:3], v[2:3]7279; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)7280; GFX12-SDAG-NEXT: v_min_num_f64_e32 v[0:1], v[0:1], v[4:5]7281; GFX12-SDAG-NEXT: v_min_num_f64_e32 v[2:3], v[2:3], v[6:7]7282; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]7283;7284; GFX12-GISEL-LABEL: v_minimumnum_v2f64:7285; GFX12-GISEL: ; %bb.0:7286; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x07287; GFX12-GISEL-NEXT: s_wait_expcnt 0x07288; GFX12-GISEL-NEXT: s_wait_samplecnt 0x07289; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x07290; GFX12-GISEL-NEXT: s_wait_kmcnt 0x07291; GFX12-GISEL-NEXT: v_max_num_f64_e32 v[0:1], v[0:1], v[0:1]7292; GFX12-GISEL-NEXT: v_max_num_f64_e32 v[4:5], v[4:5], v[4:5]7293; GFX12-GISEL-NEXT: v_max_num_f64_e32 v[2:3], v[2:3], v[2:3]7294; GFX12-GISEL-NEXT: v_max_num_f64_e32 v[6:7], v[6:7], v[6:7]7295; GFX12-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)7296; GFX12-GISEL-NEXT: v_min_num_f64_e32 v[0:1], v[0:1], v[4:5]7297; GFX12-GISEL-NEXT: v_min_num_f64_e32 v[2:3], v[2:3], v[6:7]7298; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]7299 %result = call <2 x double> @llvm.minimumnum.v2f64(<2 x double> %x, <2 x double> %y)7300 ret <2 x double> %result7301}7302 7303define <2 x double> @v_minimumnum_v2f64_nnan(<2 x double> %x, <2 x double> %y) {7304; GFX7-LABEL: v_minimumnum_v2f64_nnan:7305; GFX7: ; %bb.0:7306; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7307; GFX7-NEXT: v_min_f64 v[0:1], v[0:1], v[4:5]7308; GFX7-NEXT: v_min_f64 v[2:3], v[2:3], v[6:7]7309; GFX7-NEXT: s_setpc_b64 s[30:31]7310;7311; GFX8-LABEL: v_minimumnum_v2f64_nnan:7312; GFX8: ; %bb.0:7313; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7314; GFX8-NEXT: v_min_f64 v[0:1], v[0:1], v[4:5]7315; GFX8-NEXT: v_min_f64 v[2:3], v[2:3], v[6:7]7316; GFX8-NEXT: s_setpc_b64 s[30:31]7317;7318; GFX9-LABEL: v_minimumnum_v2f64_nnan:7319; GFX9: ; %bb.0:7320; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7321; GFX9-NEXT: v_min_f64 v[0:1], v[0:1], v[4:5]7322; GFX9-NEXT: v_min_f64 v[2:3], v[2:3], v[6:7]7323; GFX9-NEXT: s_setpc_b64 s[30:31]7324;7325; GFX10-LABEL: v_minimumnum_v2f64_nnan:7326; GFX10: ; %bb.0:7327; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7328; GFX10-NEXT: v_min_f64 v[0:1], v[0:1], v[4:5]7329; GFX10-NEXT: v_min_f64 v[2:3], v[2:3], v[6:7]7330; GFX10-NEXT: s_setpc_b64 s[30:31]7331;7332; GFX11-LABEL: v_minimumnum_v2f64_nnan:7333; GFX11: ; %bb.0:7334; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7335; GFX11-NEXT: v_min_f64 v[0:1], v[0:1], v[4:5]7336; GFX11-NEXT: v_min_f64 v[2:3], v[2:3], v[6:7]7337; GFX11-NEXT: s_setpc_b64 s[30:31]7338;7339; GFX12-LABEL: v_minimumnum_v2f64_nnan:7340; GFX12: ; %bb.0:7341; GFX12-NEXT: s_wait_loadcnt_dscnt 0x07342; GFX12-NEXT: s_wait_expcnt 0x07343; GFX12-NEXT: s_wait_samplecnt 0x07344; GFX12-NEXT: s_wait_bvhcnt 0x07345; GFX12-NEXT: s_wait_kmcnt 0x07346; GFX12-NEXT: v_min_num_f64_e32 v[0:1], v[0:1], v[4:5]7347; GFX12-NEXT: v_min_num_f64_e32 v[2:3], v[2:3], v[6:7]7348; GFX12-NEXT: s_setpc_b64 s[30:31]7349 %result = call nnan <2 x double> @llvm.minimumnum.v2f64(<2 x double> %x, <2 x double> %y)7350 ret <2 x double> %result7351}7352 7353define <3 x double> @v_minimumnum_v3f64(<3 x double> %x, <3 x double> %y) {7354; GFX7-SDAG-LABEL: v_minimumnum_v3f64:7355; GFX7-SDAG: ; %bb.0:7356; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7357; GFX7-SDAG-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7358; GFX7-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7359; GFX7-SDAG-NEXT: v_max_f64 v[8:9], v[8:9], v[8:9]7360; GFX7-SDAG-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7361; GFX7-SDAG-NEXT: v_max_f64 v[10:11], v[10:11], v[10:11]7362; GFX7-SDAG-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7363; GFX7-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[6:7]7364; GFX7-SDAG-NEXT: v_min_f64 v[2:3], v[2:3], v[8:9]7365; GFX7-SDAG-NEXT: v_min_f64 v[4:5], v[4:5], v[10:11]7366; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]7367;7368; GFX7-GISEL-LABEL: v_minimumnum_v3f64:7369; GFX7-GISEL: ; %bb.0:7370; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7371; GFX7-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7372; GFX7-GISEL-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7373; GFX7-GISEL-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7374; GFX7-GISEL-NEXT: v_max_f64 v[8:9], v[8:9], v[8:9]7375; GFX7-GISEL-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7376; GFX7-GISEL-NEXT: v_max_f64 v[10:11], v[10:11], v[10:11]7377; GFX7-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[6:7]7378; GFX7-GISEL-NEXT: v_min_f64 v[2:3], v[2:3], v[8:9]7379; GFX7-GISEL-NEXT: v_min_f64 v[4:5], v[4:5], v[10:11]7380; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]7381;7382; GFX8-SDAG-LABEL: v_minimumnum_v3f64:7383; GFX8-SDAG: ; %bb.0:7384; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7385; GFX8-SDAG-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7386; GFX8-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7387; GFX8-SDAG-NEXT: v_max_f64 v[8:9], v[8:9], v[8:9]7388; GFX8-SDAG-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7389; GFX8-SDAG-NEXT: v_max_f64 v[10:11], v[10:11], v[10:11]7390; GFX8-SDAG-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7391; GFX8-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[6:7]7392; GFX8-SDAG-NEXT: v_min_f64 v[2:3], v[2:3], v[8:9]7393; GFX8-SDAG-NEXT: v_min_f64 v[4:5], v[4:5], v[10:11]7394; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]7395;7396; GFX8-GISEL-LABEL: v_minimumnum_v3f64:7397; GFX8-GISEL: ; %bb.0:7398; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7399; GFX8-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7400; GFX8-GISEL-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7401; GFX8-GISEL-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7402; GFX8-GISEL-NEXT: v_max_f64 v[8:9], v[8:9], v[8:9]7403; GFX8-GISEL-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7404; GFX8-GISEL-NEXT: v_max_f64 v[10:11], v[10:11], v[10:11]7405; GFX8-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[6:7]7406; GFX8-GISEL-NEXT: v_min_f64 v[2:3], v[2:3], v[8:9]7407; GFX8-GISEL-NEXT: v_min_f64 v[4:5], v[4:5], v[10:11]7408; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]7409;7410; GFX900-SDAG-LABEL: v_minimumnum_v3f64:7411; GFX900-SDAG: ; %bb.0:7412; GFX900-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7413; GFX900-SDAG-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7414; GFX900-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7415; GFX900-SDAG-NEXT: v_max_f64 v[8:9], v[8:9], v[8:9]7416; GFX900-SDAG-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7417; GFX900-SDAG-NEXT: v_max_f64 v[10:11], v[10:11], v[10:11]7418; GFX900-SDAG-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7419; GFX900-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[6:7]7420; GFX900-SDAG-NEXT: v_min_f64 v[2:3], v[2:3], v[8:9]7421; GFX900-SDAG-NEXT: v_min_f64 v[4:5], v[4:5], v[10:11]7422; GFX900-SDAG-NEXT: s_setpc_b64 s[30:31]7423;7424; GFX900-GISEL-LABEL: v_minimumnum_v3f64:7425; GFX900-GISEL: ; %bb.0:7426; GFX900-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7427; GFX900-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7428; GFX900-GISEL-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7429; GFX900-GISEL-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7430; GFX900-GISEL-NEXT: v_max_f64 v[8:9], v[8:9], v[8:9]7431; GFX900-GISEL-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7432; GFX900-GISEL-NEXT: v_max_f64 v[10:11], v[10:11], v[10:11]7433; GFX900-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[6:7]7434; GFX900-GISEL-NEXT: v_min_f64 v[2:3], v[2:3], v[8:9]7435; GFX900-GISEL-NEXT: v_min_f64 v[4:5], v[4:5], v[10:11]7436; GFX900-GISEL-NEXT: s_setpc_b64 s[30:31]7437;7438; GFX950-SDAG-LABEL: v_minimumnum_v3f64:7439; GFX950-SDAG: ; %bb.0:7440; GFX950-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7441; GFX950-SDAG-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7442; GFX950-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7443; GFX950-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[6:7]7444; GFX950-SDAG-NEXT: v_max_f64 v[6:7], v[8:9], v[8:9]7445; GFX950-SDAG-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7446; GFX950-SDAG-NEXT: v_min_f64 v[2:3], v[2:3], v[6:7]7447; GFX950-SDAG-NEXT: v_max_f64 v[6:7], v[10:11], v[10:11]7448; GFX950-SDAG-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7449; GFX950-SDAG-NEXT: v_min_f64 v[4:5], v[4:5], v[6:7]7450; GFX950-SDAG-NEXT: s_setpc_b64 s[30:31]7451;7452; GFX950-GISEL-LABEL: v_minimumnum_v3f64:7453; GFX950-GISEL: ; %bb.0:7454; GFX950-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7455; GFX950-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7456; GFX950-GISEL-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7457; GFX950-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[6:7]7458; GFX950-GISEL-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7459; GFX950-GISEL-NEXT: v_max_f64 v[6:7], v[8:9], v[8:9]7460; GFX950-GISEL-NEXT: v_min_f64 v[2:3], v[2:3], v[6:7]7461; GFX950-GISEL-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7462; GFX950-GISEL-NEXT: v_max_f64 v[6:7], v[10:11], v[10:11]7463; GFX950-GISEL-NEXT: v_min_f64 v[4:5], v[4:5], v[6:7]7464; GFX950-GISEL-NEXT: s_setpc_b64 s[30:31]7465;7466; GFX10-SDAG-LABEL: v_minimumnum_v3f64:7467; GFX10-SDAG: ; %bb.0:7468; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7469; GFX10-SDAG-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7470; GFX10-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7471; GFX10-SDAG-NEXT: v_max_f64 v[8:9], v[8:9], v[8:9]7472; GFX10-SDAG-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7473; GFX10-SDAG-NEXT: v_max_f64 v[10:11], v[10:11], v[10:11]7474; GFX10-SDAG-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7475; GFX10-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[6:7]7476; GFX10-SDAG-NEXT: v_min_f64 v[2:3], v[2:3], v[8:9]7477; GFX10-SDAG-NEXT: v_min_f64 v[4:5], v[4:5], v[10:11]7478; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]7479;7480; GFX10-GISEL-LABEL: v_minimumnum_v3f64:7481; GFX10-GISEL: ; %bb.0:7482; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7483; GFX10-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7484; GFX10-GISEL-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7485; GFX10-GISEL-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7486; GFX10-GISEL-NEXT: v_max_f64 v[8:9], v[8:9], v[8:9]7487; GFX10-GISEL-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7488; GFX10-GISEL-NEXT: v_max_f64 v[10:11], v[10:11], v[10:11]7489; GFX10-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[6:7]7490; GFX10-GISEL-NEXT: v_min_f64 v[2:3], v[2:3], v[8:9]7491; GFX10-GISEL-NEXT: v_min_f64 v[4:5], v[4:5], v[10:11]7492; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]7493;7494; GFX11-SDAG-LABEL: v_minimumnum_v3f64:7495; GFX11-SDAG: ; %bb.0:7496; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7497; GFX11-SDAG-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7498; GFX11-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7499; GFX11-SDAG-NEXT: v_max_f64 v[8:9], v[8:9], v[8:9]7500; GFX11-SDAG-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7501; GFX11-SDAG-NEXT: v_max_f64 v[10:11], v[10:11], v[10:11]7502; GFX11-SDAG-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7503; GFX11-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[6:7]7504; GFX11-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_3)7505; GFX11-SDAG-NEXT: v_min_f64 v[2:3], v[2:3], v[8:9]7506; GFX11-SDAG-NEXT: v_min_f64 v[4:5], v[4:5], v[10:11]7507; GFX11-SDAG-NEXT: s_setpc_b64 s[30:31]7508;7509; GFX11-GISEL-LABEL: v_minimumnum_v3f64:7510; GFX11-GISEL: ; %bb.0:7511; GFX11-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7512; GFX11-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7513; GFX11-GISEL-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7514; GFX11-GISEL-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7515; GFX11-GISEL-NEXT: v_max_f64 v[8:9], v[8:9], v[8:9]7516; GFX11-GISEL-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7517; GFX11-GISEL-NEXT: v_max_f64 v[10:11], v[10:11], v[10:11]7518; GFX11-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[6:7]7519; GFX11-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_3)7520; GFX11-GISEL-NEXT: v_min_f64 v[2:3], v[2:3], v[8:9]7521; GFX11-GISEL-NEXT: v_min_f64 v[4:5], v[4:5], v[10:11]7522; GFX11-GISEL-NEXT: s_setpc_b64 s[30:31]7523;7524; GFX12-SDAG-LABEL: v_minimumnum_v3f64:7525; GFX12-SDAG: ; %bb.0:7526; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x07527; GFX12-SDAG-NEXT: s_wait_expcnt 0x07528; GFX12-SDAG-NEXT: s_wait_samplecnt 0x07529; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x07530; GFX12-SDAG-NEXT: s_wait_kmcnt 0x07531; GFX12-SDAG-NEXT: v_max_num_f64_e32 v[6:7], v[6:7], v[6:7]7532; GFX12-SDAG-NEXT: v_max_num_f64_e32 v[0:1], v[0:1], v[0:1]7533; GFX12-SDAG-NEXT: v_max_num_f64_e32 v[8:9], v[8:9], v[8:9]7534; GFX12-SDAG-NEXT: v_max_num_f64_e32 v[2:3], v[2:3], v[2:3]7535; GFX12-SDAG-NEXT: v_max_num_f64_e32 v[10:11], v[10:11], v[10:11]7536; GFX12-SDAG-NEXT: v_max_num_f64_e32 v[4:5], v[4:5], v[4:5]7537; GFX12-SDAG-NEXT: v_min_num_f64_e32 v[0:1], v[0:1], v[6:7]7538; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_3)7539; GFX12-SDAG-NEXT: v_min_num_f64_e32 v[2:3], v[2:3], v[8:9]7540; GFX12-SDAG-NEXT: v_min_num_f64_e32 v[4:5], v[4:5], v[10:11]7541; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]7542;7543; GFX12-GISEL-LABEL: v_minimumnum_v3f64:7544; GFX12-GISEL: ; %bb.0:7545; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x07546; GFX12-GISEL-NEXT: s_wait_expcnt 0x07547; GFX12-GISEL-NEXT: s_wait_samplecnt 0x07548; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x07549; GFX12-GISEL-NEXT: s_wait_kmcnt 0x07550; GFX12-GISEL-NEXT: v_max_num_f64_e32 v[0:1], v[0:1], v[0:1]7551; GFX12-GISEL-NEXT: v_max_num_f64_e32 v[6:7], v[6:7], v[6:7]7552; GFX12-GISEL-NEXT: v_max_num_f64_e32 v[2:3], v[2:3], v[2:3]7553; GFX12-GISEL-NEXT: v_max_num_f64_e32 v[8:9], v[8:9], v[8:9]7554; GFX12-GISEL-NEXT: v_max_num_f64_e32 v[4:5], v[4:5], v[4:5]7555; GFX12-GISEL-NEXT: v_max_num_f64_e32 v[10:11], v[10:11], v[10:11]7556; GFX12-GISEL-NEXT: v_min_num_f64_e32 v[0:1], v[0:1], v[6:7]7557; GFX12-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_3)7558; GFX12-GISEL-NEXT: v_min_num_f64_e32 v[2:3], v[2:3], v[8:9]7559; GFX12-GISEL-NEXT: v_min_num_f64_e32 v[4:5], v[4:5], v[10:11]7560; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]7561 %result = call <3 x double> @llvm.minimumnum.v3f64(<3 x double> %x, <3 x double> %y)7562 ret <3 x double> %result7563}7564 7565define <3 x double> @v_minimumnum_v3f64_nnan(<3 x double> %x, <3 x double> %y) {7566; GFX7-LABEL: v_minimumnum_v3f64_nnan:7567; GFX7: ; %bb.0:7568; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7569; GFX7-NEXT: v_min_f64 v[0:1], v[0:1], v[6:7]7570; GFX7-NEXT: v_min_f64 v[2:3], v[2:3], v[8:9]7571; GFX7-NEXT: v_min_f64 v[4:5], v[4:5], v[10:11]7572; GFX7-NEXT: s_setpc_b64 s[30:31]7573;7574; GFX8-LABEL: v_minimumnum_v3f64_nnan:7575; GFX8: ; %bb.0:7576; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7577; GFX8-NEXT: v_min_f64 v[0:1], v[0:1], v[6:7]7578; GFX8-NEXT: v_min_f64 v[2:3], v[2:3], v[8:9]7579; GFX8-NEXT: v_min_f64 v[4:5], v[4:5], v[10:11]7580; GFX8-NEXT: s_setpc_b64 s[30:31]7581;7582; GFX9-LABEL: v_minimumnum_v3f64_nnan:7583; GFX9: ; %bb.0:7584; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7585; GFX9-NEXT: v_min_f64 v[0:1], v[0:1], v[6:7]7586; GFX9-NEXT: v_min_f64 v[2:3], v[2:3], v[8:9]7587; GFX9-NEXT: v_min_f64 v[4:5], v[4:5], v[10:11]7588; GFX9-NEXT: s_setpc_b64 s[30:31]7589;7590; GFX10-LABEL: v_minimumnum_v3f64_nnan:7591; GFX10: ; %bb.0:7592; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7593; GFX10-NEXT: v_min_f64 v[0:1], v[0:1], v[6:7]7594; GFX10-NEXT: v_min_f64 v[2:3], v[2:3], v[8:9]7595; GFX10-NEXT: v_min_f64 v[4:5], v[4:5], v[10:11]7596; GFX10-NEXT: s_setpc_b64 s[30:31]7597;7598; GFX11-LABEL: v_minimumnum_v3f64_nnan:7599; GFX11: ; %bb.0:7600; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7601; GFX11-NEXT: v_min_f64 v[0:1], v[0:1], v[6:7]7602; GFX11-NEXT: v_min_f64 v[2:3], v[2:3], v[8:9]7603; GFX11-NEXT: v_min_f64 v[4:5], v[4:5], v[10:11]7604; GFX11-NEXT: s_setpc_b64 s[30:31]7605;7606; GFX12-LABEL: v_minimumnum_v3f64_nnan:7607; GFX12: ; %bb.0:7608; GFX12-NEXT: s_wait_loadcnt_dscnt 0x07609; GFX12-NEXT: s_wait_expcnt 0x07610; GFX12-NEXT: s_wait_samplecnt 0x07611; GFX12-NEXT: s_wait_bvhcnt 0x07612; GFX12-NEXT: s_wait_kmcnt 0x07613; GFX12-NEXT: v_min_num_f64_e32 v[0:1], v[0:1], v[6:7]7614; GFX12-NEXT: v_min_num_f64_e32 v[2:3], v[2:3], v[8:9]7615; GFX12-NEXT: v_min_num_f64_e32 v[4:5], v[4:5], v[10:11]7616; GFX12-NEXT: s_setpc_b64 s[30:31]7617 %result = call nnan <3 x double> @llvm.minimumnum.v3f64(<3 x double> %x, <3 x double> %y)7618 ret <3 x double> %result7619}7620 7621define <4 x double> @v_minimumnum_v4f64(<4 x double> %x, <4 x double> %y) {7622; GFX7-SDAG-LABEL: v_minimumnum_v4f64:7623; GFX7-SDAG: ; %bb.0:7624; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7625; GFX7-SDAG-NEXT: v_max_f64 v[8:9], v[8:9], v[8:9]7626; GFX7-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7627; GFX7-SDAG-NEXT: v_max_f64 v[10:11], v[10:11], v[10:11]7628; GFX7-SDAG-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7629; GFX7-SDAG-NEXT: v_max_f64 v[12:13], v[12:13], v[12:13]7630; GFX7-SDAG-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7631; GFX7-SDAG-NEXT: v_max_f64 v[14:15], v[14:15], v[14:15]7632; GFX7-SDAG-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7633; GFX7-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[8:9]7634; GFX7-SDAG-NEXT: v_min_f64 v[2:3], v[2:3], v[10:11]7635; GFX7-SDAG-NEXT: v_min_f64 v[4:5], v[4:5], v[12:13]7636; GFX7-SDAG-NEXT: v_min_f64 v[6:7], v[6:7], v[14:15]7637; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]7638;7639; GFX7-GISEL-LABEL: v_minimumnum_v4f64:7640; GFX7-GISEL: ; %bb.0:7641; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7642; GFX7-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7643; GFX7-GISEL-NEXT: v_max_f64 v[8:9], v[8:9], v[8:9]7644; GFX7-GISEL-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7645; GFX7-GISEL-NEXT: v_max_f64 v[10:11], v[10:11], v[10:11]7646; GFX7-GISEL-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7647; GFX7-GISEL-NEXT: v_max_f64 v[12:13], v[12:13], v[12:13]7648; GFX7-GISEL-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7649; GFX7-GISEL-NEXT: v_max_f64 v[14:15], v[14:15], v[14:15]7650; GFX7-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[8:9]7651; GFX7-GISEL-NEXT: v_min_f64 v[2:3], v[2:3], v[10:11]7652; GFX7-GISEL-NEXT: v_min_f64 v[4:5], v[4:5], v[12:13]7653; GFX7-GISEL-NEXT: v_min_f64 v[6:7], v[6:7], v[14:15]7654; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]7655;7656; GFX8-SDAG-LABEL: v_minimumnum_v4f64:7657; GFX8-SDAG: ; %bb.0:7658; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7659; GFX8-SDAG-NEXT: v_max_f64 v[8:9], v[8:9], v[8:9]7660; GFX8-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7661; GFX8-SDAG-NEXT: v_max_f64 v[10:11], v[10:11], v[10:11]7662; GFX8-SDAG-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7663; GFX8-SDAG-NEXT: v_max_f64 v[12:13], v[12:13], v[12:13]7664; GFX8-SDAG-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7665; GFX8-SDAG-NEXT: v_max_f64 v[14:15], v[14:15], v[14:15]7666; GFX8-SDAG-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7667; GFX8-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[8:9]7668; GFX8-SDAG-NEXT: v_min_f64 v[2:3], v[2:3], v[10:11]7669; GFX8-SDAG-NEXT: v_min_f64 v[4:5], v[4:5], v[12:13]7670; GFX8-SDAG-NEXT: v_min_f64 v[6:7], v[6:7], v[14:15]7671; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]7672;7673; GFX8-GISEL-LABEL: v_minimumnum_v4f64:7674; GFX8-GISEL: ; %bb.0:7675; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7676; GFX8-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7677; GFX8-GISEL-NEXT: v_max_f64 v[8:9], v[8:9], v[8:9]7678; GFX8-GISEL-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7679; GFX8-GISEL-NEXT: v_max_f64 v[10:11], v[10:11], v[10:11]7680; GFX8-GISEL-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7681; GFX8-GISEL-NEXT: v_max_f64 v[12:13], v[12:13], v[12:13]7682; GFX8-GISEL-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7683; GFX8-GISEL-NEXT: v_max_f64 v[14:15], v[14:15], v[14:15]7684; GFX8-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[8:9]7685; GFX8-GISEL-NEXT: v_min_f64 v[2:3], v[2:3], v[10:11]7686; GFX8-GISEL-NEXT: v_min_f64 v[4:5], v[4:5], v[12:13]7687; GFX8-GISEL-NEXT: v_min_f64 v[6:7], v[6:7], v[14:15]7688; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]7689;7690; GFX900-SDAG-LABEL: v_minimumnum_v4f64:7691; GFX900-SDAG: ; %bb.0:7692; GFX900-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7693; GFX900-SDAG-NEXT: v_max_f64 v[8:9], v[8:9], v[8:9]7694; GFX900-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7695; GFX900-SDAG-NEXT: v_max_f64 v[10:11], v[10:11], v[10:11]7696; GFX900-SDAG-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7697; GFX900-SDAG-NEXT: v_max_f64 v[12:13], v[12:13], v[12:13]7698; GFX900-SDAG-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7699; GFX900-SDAG-NEXT: v_max_f64 v[14:15], v[14:15], v[14:15]7700; GFX900-SDAG-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7701; GFX900-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[8:9]7702; GFX900-SDAG-NEXT: v_min_f64 v[2:3], v[2:3], v[10:11]7703; GFX900-SDAG-NEXT: v_min_f64 v[4:5], v[4:5], v[12:13]7704; GFX900-SDAG-NEXT: v_min_f64 v[6:7], v[6:7], v[14:15]7705; GFX900-SDAG-NEXT: s_setpc_b64 s[30:31]7706;7707; GFX900-GISEL-LABEL: v_minimumnum_v4f64:7708; GFX900-GISEL: ; %bb.0:7709; GFX900-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7710; GFX900-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7711; GFX900-GISEL-NEXT: v_max_f64 v[8:9], v[8:9], v[8:9]7712; GFX900-GISEL-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7713; GFX900-GISEL-NEXT: v_max_f64 v[10:11], v[10:11], v[10:11]7714; GFX900-GISEL-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7715; GFX900-GISEL-NEXT: v_max_f64 v[12:13], v[12:13], v[12:13]7716; GFX900-GISEL-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7717; GFX900-GISEL-NEXT: v_max_f64 v[14:15], v[14:15], v[14:15]7718; GFX900-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[8:9]7719; GFX900-GISEL-NEXT: v_min_f64 v[2:3], v[2:3], v[10:11]7720; GFX900-GISEL-NEXT: v_min_f64 v[4:5], v[4:5], v[12:13]7721; GFX900-GISEL-NEXT: v_min_f64 v[6:7], v[6:7], v[14:15]7722; GFX900-GISEL-NEXT: s_setpc_b64 s[30:31]7723;7724; GFX950-SDAG-LABEL: v_minimumnum_v4f64:7725; GFX950-SDAG: ; %bb.0:7726; GFX950-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7727; GFX950-SDAG-NEXT: v_max_f64 v[8:9], v[8:9], v[8:9]7728; GFX950-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7729; GFX950-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[8:9]7730; GFX950-SDAG-NEXT: v_max_f64 v[8:9], v[10:11], v[10:11]7731; GFX950-SDAG-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7732; GFX950-SDAG-NEXT: v_min_f64 v[2:3], v[2:3], v[8:9]7733; GFX950-SDAG-NEXT: v_max_f64 v[8:9], v[12:13], v[12:13]7734; GFX950-SDAG-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7735; GFX950-SDAG-NEXT: v_min_f64 v[4:5], v[4:5], v[8:9]7736; GFX950-SDAG-NEXT: v_max_f64 v[8:9], v[14:15], v[14:15]7737; GFX950-SDAG-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7738; GFX950-SDAG-NEXT: v_min_f64 v[6:7], v[6:7], v[8:9]7739; GFX950-SDAG-NEXT: s_setpc_b64 s[30:31]7740;7741; GFX950-GISEL-LABEL: v_minimumnum_v4f64:7742; GFX950-GISEL: ; %bb.0:7743; GFX950-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7744; GFX950-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7745; GFX950-GISEL-NEXT: v_max_f64 v[8:9], v[8:9], v[8:9]7746; GFX950-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[8:9]7747; GFX950-GISEL-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7748; GFX950-GISEL-NEXT: v_max_f64 v[8:9], v[10:11], v[10:11]7749; GFX950-GISEL-NEXT: v_min_f64 v[2:3], v[2:3], v[8:9]7750; GFX950-GISEL-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7751; GFX950-GISEL-NEXT: v_max_f64 v[8:9], v[12:13], v[12:13]7752; GFX950-GISEL-NEXT: v_min_f64 v[4:5], v[4:5], v[8:9]7753; GFX950-GISEL-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7754; GFX950-GISEL-NEXT: v_max_f64 v[8:9], v[14:15], v[14:15]7755; GFX950-GISEL-NEXT: v_min_f64 v[6:7], v[6:7], v[8:9]7756; GFX950-GISEL-NEXT: s_setpc_b64 s[30:31]7757;7758; GFX10-SDAG-LABEL: v_minimumnum_v4f64:7759; GFX10-SDAG: ; %bb.0:7760; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7761; GFX10-SDAG-NEXT: v_max_f64 v[8:9], v[8:9], v[8:9]7762; GFX10-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7763; GFX10-SDAG-NEXT: v_max_f64 v[10:11], v[10:11], v[10:11]7764; GFX10-SDAG-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7765; GFX10-SDAG-NEXT: v_max_f64 v[12:13], v[12:13], v[12:13]7766; GFX10-SDAG-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7767; GFX10-SDAG-NEXT: v_max_f64 v[14:15], v[14:15], v[14:15]7768; GFX10-SDAG-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7769; GFX10-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[8:9]7770; GFX10-SDAG-NEXT: v_min_f64 v[2:3], v[2:3], v[10:11]7771; GFX10-SDAG-NEXT: v_min_f64 v[4:5], v[4:5], v[12:13]7772; GFX10-SDAG-NEXT: v_min_f64 v[6:7], v[6:7], v[14:15]7773; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]7774;7775; GFX10-GISEL-LABEL: v_minimumnum_v4f64:7776; GFX10-GISEL: ; %bb.0:7777; GFX10-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7778; GFX10-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7779; GFX10-GISEL-NEXT: v_max_f64 v[8:9], v[8:9], v[8:9]7780; GFX10-GISEL-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7781; GFX10-GISEL-NEXT: v_max_f64 v[10:11], v[10:11], v[10:11]7782; GFX10-GISEL-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7783; GFX10-GISEL-NEXT: v_max_f64 v[12:13], v[12:13], v[12:13]7784; GFX10-GISEL-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7785; GFX10-GISEL-NEXT: v_max_f64 v[14:15], v[14:15], v[14:15]7786; GFX10-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[8:9]7787; GFX10-GISEL-NEXT: v_min_f64 v[2:3], v[2:3], v[10:11]7788; GFX10-GISEL-NEXT: v_min_f64 v[4:5], v[4:5], v[12:13]7789; GFX10-GISEL-NEXT: v_min_f64 v[6:7], v[6:7], v[14:15]7790; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]7791;7792; GFX11-SDAG-LABEL: v_minimumnum_v4f64:7793; GFX11-SDAG: ; %bb.0:7794; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7795; GFX11-SDAG-NEXT: v_max_f64 v[8:9], v[8:9], v[8:9]7796; GFX11-SDAG-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7797; GFX11-SDAG-NEXT: v_max_f64 v[10:11], v[10:11], v[10:11]7798; GFX11-SDAG-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7799; GFX11-SDAG-NEXT: v_max_f64 v[12:13], v[12:13], v[12:13]7800; GFX11-SDAG-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7801; GFX11-SDAG-NEXT: v_max_f64 v[14:15], v[14:15], v[14:15]7802; GFX11-SDAG-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7803; GFX11-SDAG-NEXT: v_min_f64 v[0:1], v[0:1], v[8:9]7804; GFX11-SDAG-NEXT: v_min_f64 v[2:3], v[2:3], v[10:11]7805; GFX11-SDAG-NEXT: v_min_f64 v[4:5], v[4:5], v[12:13]7806; GFX11-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_4)7807; GFX11-SDAG-NEXT: v_min_f64 v[6:7], v[6:7], v[14:15]7808; GFX11-SDAG-NEXT: s_setpc_b64 s[30:31]7809;7810; GFX11-GISEL-LABEL: v_minimumnum_v4f64:7811; GFX11-GISEL: ; %bb.0:7812; GFX11-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7813; GFX11-GISEL-NEXT: v_max_f64 v[0:1], v[0:1], v[0:1]7814; GFX11-GISEL-NEXT: v_max_f64 v[8:9], v[8:9], v[8:9]7815; GFX11-GISEL-NEXT: v_max_f64 v[2:3], v[2:3], v[2:3]7816; GFX11-GISEL-NEXT: v_max_f64 v[10:11], v[10:11], v[10:11]7817; GFX11-GISEL-NEXT: v_max_f64 v[4:5], v[4:5], v[4:5]7818; GFX11-GISEL-NEXT: v_max_f64 v[12:13], v[12:13], v[12:13]7819; GFX11-GISEL-NEXT: v_max_f64 v[6:7], v[6:7], v[6:7]7820; GFX11-GISEL-NEXT: v_max_f64 v[14:15], v[14:15], v[14:15]7821; GFX11-GISEL-NEXT: v_min_f64 v[0:1], v[0:1], v[8:9]7822; GFX11-GISEL-NEXT: v_min_f64 v[2:3], v[2:3], v[10:11]7823; GFX11-GISEL-NEXT: v_min_f64 v[4:5], v[4:5], v[12:13]7824; GFX11-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_4)7825; GFX11-GISEL-NEXT: v_min_f64 v[6:7], v[6:7], v[14:15]7826; GFX11-GISEL-NEXT: s_setpc_b64 s[30:31]7827;7828; GFX12-SDAG-LABEL: v_minimumnum_v4f64:7829; GFX12-SDAG: ; %bb.0:7830; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x07831; GFX12-SDAG-NEXT: s_wait_expcnt 0x07832; GFX12-SDAG-NEXT: s_wait_samplecnt 0x07833; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x07834; GFX12-SDAG-NEXT: s_wait_kmcnt 0x07835; GFX12-SDAG-NEXT: v_max_num_f64_e32 v[8:9], v[8:9], v[8:9]7836; GFX12-SDAG-NEXT: v_max_num_f64_e32 v[0:1], v[0:1], v[0:1]7837; GFX12-SDAG-NEXT: v_max_num_f64_e32 v[10:11], v[10:11], v[10:11]7838; GFX12-SDAG-NEXT: v_max_num_f64_e32 v[2:3], v[2:3], v[2:3]7839; GFX12-SDAG-NEXT: v_max_num_f64_e32 v[12:13], v[12:13], v[12:13]7840; GFX12-SDAG-NEXT: v_max_num_f64_e32 v[4:5], v[4:5], v[4:5]7841; GFX12-SDAG-NEXT: v_max_num_f64_e32 v[14:15], v[14:15], v[14:15]7842; GFX12-SDAG-NEXT: v_max_num_f64_e32 v[6:7], v[6:7], v[6:7]7843; GFX12-SDAG-NEXT: v_min_num_f64_e32 v[0:1], v[0:1], v[8:9]7844; GFX12-SDAG-NEXT: v_min_num_f64_e32 v[2:3], v[2:3], v[10:11]7845; GFX12-SDAG-NEXT: v_min_num_f64_e32 v[4:5], v[4:5], v[12:13]7846; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_4)7847; GFX12-SDAG-NEXT: v_min_num_f64_e32 v[6:7], v[6:7], v[14:15]7848; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]7849;7850; GFX12-GISEL-LABEL: v_minimumnum_v4f64:7851; GFX12-GISEL: ; %bb.0:7852; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x07853; GFX12-GISEL-NEXT: s_wait_expcnt 0x07854; GFX12-GISEL-NEXT: s_wait_samplecnt 0x07855; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x07856; GFX12-GISEL-NEXT: s_wait_kmcnt 0x07857; GFX12-GISEL-NEXT: v_max_num_f64_e32 v[0:1], v[0:1], v[0:1]7858; GFX12-GISEL-NEXT: v_max_num_f64_e32 v[8:9], v[8:9], v[8:9]7859; GFX12-GISEL-NEXT: v_max_num_f64_e32 v[2:3], v[2:3], v[2:3]7860; GFX12-GISEL-NEXT: v_max_num_f64_e32 v[10:11], v[10:11], v[10:11]7861; GFX12-GISEL-NEXT: v_max_num_f64_e32 v[4:5], v[4:5], v[4:5]7862; GFX12-GISEL-NEXT: v_max_num_f64_e32 v[12:13], v[12:13], v[12:13]7863; GFX12-GISEL-NEXT: v_max_num_f64_e32 v[6:7], v[6:7], v[6:7]7864; GFX12-GISEL-NEXT: v_max_num_f64_e32 v[14:15], v[14:15], v[14:15]7865; GFX12-GISEL-NEXT: v_min_num_f64_e32 v[0:1], v[0:1], v[8:9]7866; GFX12-GISEL-NEXT: v_min_num_f64_e32 v[2:3], v[2:3], v[10:11]7867; GFX12-GISEL-NEXT: v_min_num_f64_e32 v[4:5], v[4:5], v[12:13]7868; GFX12-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_4)7869; GFX12-GISEL-NEXT: v_min_num_f64_e32 v[6:7], v[6:7], v[14:15]7870; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]7871 %result = call <4 x double> @llvm.minimumnum.v4f64(<4 x double> %x, <4 x double> %y)7872 ret <4 x double> %result7873}7874 7875define <4 x double> @v_minimumnum_v4f64_nnan(<4 x double> %x, <4 x double> %y) {7876; GFX7-LABEL: v_minimumnum_v4f64_nnan:7877; GFX7: ; %bb.0:7878; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7879; GFX7-NEXT: v_min_f64 v[0:1], v[0:1], v[8:9]7880; GFX7-NEXT: v_min_f64 v[2:3], v[2:3], v[10:11]7881; GFX7-NEXT: v_min_f64 v[4:5], v[4:5], v[12:13]7882; GFX7-NEXT: v_min_f64 v[6:7], v[6:7], v[14:15]7883; GFX7-NEXT: s_setpc_b64 s[30:31]7884;7885; GFX8-LABEL: v_minimumnum_v4f64_nnan:7886; GFX8: ; %bb.0:7887; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7888; GFX8-NEXT: v_min_f64 v[0:1], v[0:1], v[8:9]7889; GFX8-NEXT: v_min_f64 v[2:3], v[2:3], v[10:11]7890; GFX8-NEXT: v_min_f64 v[4:5], v[4:5], v[12:13]7891; GFX8-NEXT: v_min_f64 v[6:7], v[6:7], v[14:15]7892; GFX8-NEXT: s_setpc_b64 s[30:31]7893;7894; GFX9-LABEL: v_minimumnum_v4f64_nnan:7895; GFX9: ; %bb.0:7896; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7897; GFX9-NEXT: v_min_f64 v[0:1], v[0:1], v[8:9]7898; GFX9-NEXT: v_min_f64 v[2:3], v[2:3], v[10:11]7899; GFX9-NEXT: v_min_f64 v[4:5], v[4:5], v[12:13]7900; GFX9-NEXT: v_min_f64 v[6:7], v[6:7], v[14:15]7901; GFX9-NEXT: s_setpc_b64 s[30:31]7902;7903; GFX10-LABEL: v_minimumnum_v4f64_nnan:7904; GFX10: ; %bb.0:7905; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7906; GFX10-NEXT: v_min_f64 v[0:1], v[0:1], v[8:9]7907; GFX10-NEXT: v_min_f64 v[2:3], v[2:3], v[10:11]7908; GFX10-NEXT: v_min_f64 v[4:5], v[4:5], v[12:13]7909; GFX10-NEXT: v_min_f64 v[6:7], v[6:7], v[14:15]7910; GFX10-NEXT: s_setpc_b64 s[30:31]7911;7912; GFX11-LABEL: v_minimumnum_v4f64_nnan:7913; GFX11: ; %bb.0:7914; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7915; GFX11-NEXT: v_min_f64 v[0:1], v[0:1], v[8:9]7916; GFX11-NEXT: v_min_f64 v[2:3], v[2:3], v[10:11]7917; GFX11-NEXT: v_min_f64 v[4:5], v[4:5], v[12:13]7918; GFX11-NEXT: v_min_f64 v[6:7], v[6:7], v[14:15]7919; GFX11-NEXT: s_setpc_b64 s[30:31]7920;7921; GFX12-LABEL: v_minimumnum_v4f64_nnan:7922; GFX12: ; %bb.0:7923; GFX12-NEXT: s_wait_loadcnt_dscnt 0x07924; GFX12-NEXT: s_wait_expcnt 0x07925; GFX12-NEXT: s_wait_samplecnt 0x07926; GFX12-NEXT: s_wait_bvhcnt 0x07927; GFX12-NEXT: s_wait_kmcnt 0x07928; GFX12-NEXT: v_min_num_f64_e32 v[0:1], v[0:1], v[8:9]7929; GFX12-NEXT: v_min_num_f64_e32 v[2:3], v[2:3], v[10:11]7930; GFX12-NEXT: v_min_num_f64_e32 v[4:5], v[4:5], v[12:13]7931; GFX12-NEXT: v_min_num_f64_e32 v[6:7], v[6:7], v[14:15]7932; GFX12-NEXT: s_setpc_b64 s[30:31]7933 %result = call nnan <4 x double> @llvm.minimumnum.v4f64(<4 x double> %x, <4 x double> %y)7934 ret <4 x double> %result7935}7936 7937define half @v_minimumnum_f16_no_ieee(half %x, half %y) #0 {7938; GFX7-SDAG-LABEL: v_minimumnum_f16_no_ieee:7939; GFX7-SDAG: ; %bb.0:7940; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7941; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v1, v17942; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v07943; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v1, v17944; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v07945; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v17946; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]7947;7948; GFX7-GISEL-LABEL: v_minimumnum_f16_no_ieee:7949; GFX7-GISEL: ; %bb.0:7950; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7951; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v0, v07952; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v1, v17953; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v17954; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v0, v07955; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]7956;7957; GFX8-LABEL: v_minimumnum_f16_no_ieee:7958; GFX8: ; %bb.0:7959; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7960; GFX8-NEXT: v_min_f16_e32 v0, v0, v17961; GFX8-NEXT: s_setpc_b64 s[30:31]7962;7963; GFX9-LABEL: v_minimumnum_f16_no_ieee:7964; GFX9: ; %bb.0:7965; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7966; GFX9-NEXT: v_min_f16_e32 v0, v0, v17967; GFX9-NEXT: s_setpc_b64 s[30:31]7968;7969; GFX10-LABEL: v_minimumnum_f16_no_ieee:7970; GFX10: ; %bb.0:7971; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7972; GFX10-NEXT: v_min_f16_e32 v0, v0, v17973; GFX10-NEXT: s_setpc_b64 s[30:31]7974;7975; GFX11-TRUE16-LABEL: v_minimumnum_f16_no_ieee:7976; GFX11-TRUE16: ; %bb.0:7977; GFX11-TRUE16-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7978; GFX11-TRUE16-NEXT: v_min_f16_e32 v0.l, v0.l, v1.l7979; GFX11-TRUE16-NEXT: s_setpc_b64 s[30:31]7980;7981; GFX11-FAKE16-LABEL: v_minimumnum_f16_no_ieee:7982; GFX11-FAKE16: ; %bb.0:7983; GFX11-FAKE16-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7984; GFX11-FAKE16-NEXT: v_min_f16_e32 v0, v0, v17985; GFX11-FAKE16-NEXT: s_setpc_b64 s[30:31]7986;7987; GFX12-TRUE16-SDAG-LABEL: v_minimumnum_f16_no_ieee:7988; GFX12-TRUE16-SDAG: ; %bb.0:7989; GFX12-TRUE16-SDAG-NEXT: s_wait_loadcnt_dscnt 0x07990; GFX12-TRUE16-SDAG-NEXT: s_wait_expcnt 0x07991; GFX12-TRUE16-SDAG-NEXT: s_wait_samplecnt 0x07992; GFX12-TRUE16-SDAG-NEXT: s_wait_bvhcnt 0x07993; GFX12-TRUE16-SDAG-NEXT: s_wait_kmcnt 0x07994; GFX12-TRUE16-SDAG-NEXT: v_max_num_f16_e32 v0.h, v1.l, v1.l7995; GFX12-TRUE16-SDAG-NEXT: v_max_num_f16_e32 v0.l, v0.l, v0.l7996; GFX12-TRUE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)7997; GFX12-TRUE16-SDAG-NEXT: v_min_num_f16_e32 v0.l, v0.l, v0.h7998; GFX12-TRUE16-SDAG-NEXT: s_setpc_b64 s[30:31]7999;8000; GFX12-TRUE16-GISEL-LABEL: v_minimumnum_f16_no_ieee:8001; GFX12-TRUE16-GISEL: ; %bb.0:8002; GFX12-TRUE16-GISEL-NEXT: s_wait_loadcnt_dscnt 0x08003; GFX12-TRUE16-GISEL-NEXT: s_wait_expcnt 0x08004; GFX12-TRUE16-GISEL-NEXT: s_wait_samplecnt 0x08005; GFX12-TRUE16-GISEL-NEXT: s_wait_bvhcnt 0x08006; GFX12-TRUE16-GISEL-NEXT: s_wait_kmcnt 0x08007; GFX12-TRUE16-GISEL-NEXT: v_max_num_f16_e32 v0.l, v0.l, v0.l8008; GFX12-TRUE16-GISEL-NEXT: v_max_num_f16_e32 v0.h, v1.l, v1.l8009; GFX12-TRUE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)8010; GFX12-TRUE16-GISEL-NEXT: v_min_num_f16_e32 v0.l, v0.l, v0.h8011; GFX12-TRUE16-GISEL-NEXT: s_setpc_b64 s[30:31]8012;8013; GFX12-FAKE16-SDAG-LABEL: v_minimumnum_f16_no_ieee:8014; GFX12-FAKE16-SDAG: ; %bb.0:8015; GFX12-FAKE16-SDAG-NEXT: s_wait_loadcnt_dscnt 0x08016; GFX12-FAKE16-SDAG-NEXT: s_wait_expcnt 0x08017; GFX12-FAKE16-SDAG-NEXT: s_wait_samplecnt 0x08018; GFX12-FAKE16-SDAG-NEXT: s_wait_bvhcnt 0x08019; GFX12-FAKE16-SDAG-NEXT: s_wait_kmcnt 0x08020; GFX12-FAKE16-SDAG-NEXT: v_max_num_f16_e32 v1, v1, v18021; GFX12-FAKE16-SDAG-NEXT: v_max_num_f16_e32 v0, v0, v08022; GFX12-FAKE16-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)8023; GFX12-FAKE16-SDAG-NEXT: v_min_num_f16_e32 v0, v0, v18024; GFX12-FAKE16-SDAG-NEXT: s_setpc_b64 s[30:31]8025;8026; GFX12-FAKE16-GISEL-LABEL: v_minimumnum_f16_no_ieee:8027; GFX12-FAKE16-GISEL: ; %bb.0:8028; GFX12-FAKE16-GISEL-NEXT: s_wait_loadcnt_dscnt 0x08029; GFX12-FAKE16-GISEL-NEXT: s_wait_expcnt 0x08030; GFX12-FAKE16-GISEL-NEXT: s_wait_samplecnt 0x08031; GFX12-FAKE16-GISEL-NEXT: s_wait_bvhcnt 0x08032; GFX12-FAKE16-GISEL-NEXT: s_wait_kmcnt 0x08033; GFX12-FAKE16-GISEL-NEXT: v_max_num_f16_e32 v0, v0, v08034; GFX12-FAKE16-GISEL-NEXT: v_max_num_f16_e32 v1, v1, v18035; GFX12-FAKE16-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)8036; GFX12-FAKE16-GISEL-NEXT: v_min_num_f16_e32 v0, v0, v18037; GFX12-FAKE16-GISEL-NEXT: s_setpc_b64 s[30:31]8038 %result = call half @llvm.minimumnum.f16(half %x, half %y)8039 ret half %result8040}8041 8042define half @v_minimumnum_f16_nan_no_ieee(half %x, half %y) #0 {8043; GFX7-SDAG-LABEL: v_minimumnum_f16_nan_no_ieee:8044; GFX7-SDAG: ; %bb.0:8045; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8046; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v1, v18047; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v08048; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v1, v18049; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v08050; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v18051; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]8052;8053; GFX7-GISEL-LABEL: v_minimumnum_f16_nan_no_ieee:8054; GFX7-GISEL: ; %bb.0:8055; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8056; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v0, v08057; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v1, v18058; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v18059; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v0, v08060; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]8061;8062; GFX8-LABEL: v_minimumnum_f16_nan_no_ieee:8063; GFX8: ; %bb.0:8064; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8065; GFX8-NEXT: v_min_f16_e32 v0, v0, v18066; GFX8-NEXT: s_setpc_b64 s[30:31]8067;8068; GFX9-LABEL: v_minimumnum_f16_nan_no_ieee:8069; GFX9: ; %bb.0:8070; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8071; GFX9-NEXT: v_min_f16_e32 v0, v0, v18072; GFX9-NEXT: s_setpc_b64 s[30:31]8073;8074; GFX10-LABEL: v_minimumnum_f16_nan_no_ieee:8075; GFX10: ; %bb.0:8076; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8077; GFX10-NEXT: v_min_f16_e32 v0, v0, v18078; GFX10-NEXT: s_setpc_b64 s[30:31]8079;8080; GFX11-TRUE16-LABEL: v_minimumnum_f16_nan_no_ieee:8081; GFX11-TRUE16: ; %bb.0:8082; GFX11-TRUE16-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8083; GFX11-TRUE16-NEXT: v_min_f16_e32 v0.l, v0.l, v1.l8084; GFX11-TRUE16-NEXT: s_setpc_b64 s[30:31]8085;8086; GFX11-FAKE16-LABEL: v_minimumnum_f16_nan_no_ieee:8087; GFX11-FAKE16: ; %bb.0:8088; GFX11-FAKE16-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8089; GFX11-FAKE16-NEXT: v_min_f16_e32 v0, v0, v18090; GFX11-FAKE16-NEXT: s_setpc_b64 s[30:31]8091;8092; GFX12-TRUE16-LABEL: v_minimumnum_f16_nan_no_ieee:8093; GFX12-TRUE16: ; %bb.0:8094; GFX12-TRUE16-NEXT: s_wait_loadcnt_dscnt 0x08095; GFX12-TRUE16-NEXT: s_wait_expcnt 0x08096; GFX12-TRUE16-NEXT: s_wait_samplecnt 0x08097; GFX12-TRUE16-NEXT: s_wait_bvhcnt 0x08098; GFX12-TRUE16-NEXT: s_wait_kmcnt 0x08099; GFX12-TRUE16-NEXT: v_min_num_f16_e32 v0.l, v0.l, v1.l8100; GFX12-TRUE16-NEXT: s_setpc_b64 s[30:31]8101;8102; GFX12-FAKE16-LABEL: v_minimumnum_f16_nan_no_ieee:8103; GFX12-FAKE16: ; %bb.0:8104; GFX12-FAKE16-NEXT: s_wait_loadcnt_dscnt 0x08105; GFX12-FAKE16-NEXT: s_wait_expcnt 0x08106; GFX12-FAKE16-NEXT: s_wait_samplecnt 0x08107; GFX12-FAKE16-NEXT: s_wait_bvhcnt 0x08108; GFX12-FAKE16-NEXT: s_wait_kmcnt 0x08109; GFX12-FAKE16-NEXT: v_min_num_f16_e32 v0, v0, v18110; GFX12-FAKE16-NEXT: s_setpc_b64 s[30:31]8111 %result = call nnan half @llvm.minimumnum.f16(half %x, half %y)8112 ret half %result8113}8114 8115define float @v_minimumnum_f32_no_ieee(float %x, float %y) #0 {8116; GFX7-LABEL: v_minimumnum_f32_no_ieee:8117; GFX7: ; %bb.0:8118; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8119; GFX7-NEXT: v_min_f32_e32 v0, v0, v18120; GFX7-NEXT: s_setpc_b64 s[30:31]8121;8122; GFX8-LABEL: v_minimumnum_f32_no_ieee:8123; GFX8: ; %bb.0:8124; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8125; GFX8-NEXT: v_min_f32_e32 v0, v0, v18126; GFX8-NEXT: s_setpc_b64 s[30:31]8127;8128; GFX9-LABEL: v_minimumnum_f32_no_ieee:8129; GFX9: ; %bb.0:8130; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8131; GFX9-NEXT: v_min_f32_e32 v0, v0, v18132; GFX9-NEXT: s_setpc_b64 s[30:31]8133;8134; GFX10-LABEL: v_minimumnum_f32_no_ieee:8135; GFX10: ; %bb.0:8136; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8137; GFX10-NEXT: v_min_f32_e32 v0, v0, v18138; GFX10-NEXT: s_setpc_b64 s[30:31]8139;8140; GFX11-LABEL: v_minimumnum_f32_no_ieee:8141; GFX11: ; %bb.0:8142; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8143; GFX11-NEXT: v_min_f32_e32 v0, v0, v18144; GFX11-NEXT: s_setpc_b64 s[30:31]8145;8146; GFX12-SDAG-LABEL: v_minimumnum_f32_no_ieee:8147; GFX12-SDAG: ; %bb.0:8148; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x08149; GFX12-SDAG-NEXT: s_wait_expcnt 0x08150; GFX12-SDAG-NEXT: s_wait_samplecnt 0x08151; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x08152; GFX12-SDAG-NEXT: s_wait_kmcnt 0x08153; GFX12-SDAG-NEXT: v_dual_max_num_f32 v1, v1, v1 :: v_dual_max_num_f32 v0, v0, v08154; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)8155; GFX12-SDAG-NEXT: v_min_num_f32_e32 v0, v0, v18156; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]8157;8158; GFX12-GISEL-LABEL: v_minimumnum_f32_no_ieee:8159; GFX12-GISEL: ; %bb.0:8160; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x08161; GFX12-GISEL-NEXT: s_wait_expcnt 0x08162; GFX12-GISEL-NEXT: s_wait_samplecnt 0x08163; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x08164; GFX12-GISEL-NEXT: s_wait_kmcnt 0x08165; GFX12-GISEL-NEXT: v_dual_max_num_f32 v0, v0, v0 :: v_dual_max_num_f32 v1, v1, v18166; GFX12-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)8167; GFX12-GISEL-NEXT: v_min_num_f32_e32 v0, v0, v18168; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]8169 %result = call float @llvm.minimumnum.f32(float %x, float %y)8170 ret float %result8171}8172 8173define float @v_minimumnum_f32_nnan_no_ieee(float %x, float %y) #0 {8174; GFX7-LABEL: v_minimumnum_f32_nnan_no_ieee:8175; GFX7: ; %bb.0:8176; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8177; GFX7-NEXT: v_min_f32_e32 v0, v0, v18178; GFX7-NEXT: s_setpc_b64 s[30:31]8179;8180; GFX8-LABEL: v_minimumnum_f32_nnan_no_ieee:8181; GFX8: ; %bb.0:8182; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8183; GFX8-NEXT: v_min_f32_e32 v0, v0, v18184; GFX8-NEXT: s_setpc_b64 s[30:31]8185;8186; GFX9-LABEL: v_minimumnum_f32_nnan_no_ieee:8187; GFX9: ; %bb.0:8188; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8189; GFX9-NEXT: v_min_f32_e32 v0, v0, v18190; GFX9-NEXT: s_setpc_b64 s[30:31]8191;8192; GFX10-LABEL: v_minimumnum_f32_nnan_no_ieee:8193; GFX10: ; %bb.0:8194; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8195; GFX10-NEXT: v_min_f32_e32 v0, v0, v18196; GFX10-NEXT: s_setpc_b64 s[30:31]8197;8198; GFX11-LABEL: v_minimumnum_f32_nnan_no_ieee:8199; GFX11: ; %bb.0:8200; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8201; GFX11-NEXT: v_min_f32_e32 v0, v0, v18202; GFX11-NEXT: s_setpc_b64 s[30:31]8203;8204; GFX12-LABEL: v_minimumnum_f32_nnan_no_ieee:8205; GFX12: ; %bb.0:8206; GFX12-NEXT: s_wait_loadcnt_dscnt 0x08207; GFX12-NEXT: s_wait_expcnt 0x08208; GFX12-NEXT: s_wait_samplecnt 0x08209; GFX12-NEXT: s_wait_bvhcnt 0x08210; GFX12-NEXT: s_wait_kmcnt 0x08211; GFX12-NEXT: v_min_num_f32_e32 v0, v0, v18212; GFX12-NEXT: s_setpc_b64 s[30:31]8213 %result = call nnan float @llvm.minimumnum.f32(float %x, float %y)8214 ret float %result8215}8216 8217define double @v_minimumnum_f64_no_ieee(double %x, double %y) #0 {8218; GFX7-LABEL: v_minimumnum_f64_no_ieee:8219; GFX7: ; %bb.0:8220; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8221; GFX7-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]8222; GFX7-NEXT: s_setpc_b64 s[30:31]8223;8224; GFX8-LABEL: v_minimumnum_f64_no_ieee:8225; GFX8: ; %bb.0:8226; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8227; GFX8-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]8228; GFX8-NEXT: s_setpc_b64 s[30:31]8229;8230; GFX9-LABEL: v_minimumnum_f64_no_ieee:8231; GFX9: ; %bb.0:8232; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8233; GFX9-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]8234; GFX9-NEXT: s_setpc_b64 s[30:31]8235;8236; GFX10-LABEL: v_minimumnum_f64_no_ieee:8237; GFX10: ; %bb.0:8238; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8239; GFX10-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]8240; GFX10-NEXT: s_setpc_b64 s[30:31]8241;8242; GFX11-LABEL: v_minimumnum_f64_no_ieee:8243; GFX11: ; %bb.0:8244; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8245; GFX11-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]8246; GFX11-NEXT: s_setpc_b64 s[30:31]8247;8248; GFX12-SDAG-LABEL: v_minimumnum_f64_no_ieee:8249; GFX12-SDAG: ; %bb.0:8250; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x08251; GFX12-SDAG-NEXT: s_wait_expcnt 0x08252; GFX12-SDAG-NEXT: s_wait_samplecnt 0x08253; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x08254; GFX12-SDAG-NEXT: s_wait_kmcnt 0x08255; GFX12-SDAG-NEXT: v_max_num_f64_e32 v[2:3], v[2:3], v[2:3]8256; GFX12-SDAG-NEXT: v_max_num_f64_e32 v[0:1], v[0:1], v[0:1]8257; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)8258; GFX12-SDAG-NEXT: v_min_num_f64_e32 v[0:1], v[0:1], v[2:3]8259; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]8260;8261; GFX12-GISEL-LABEL: v_minimumnum_f64_no_ieee:8262; GFX12-GISEL: ; %bb.0:8263; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x08264; GFX12-GISEL-NEXT: s_wait_expcnt 0x08265; GFX12-GISEL-NEXT: s_wait_samplecnt 0x08266; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x08267; GFX12-GISEL-NEXT: s_wait_kmcnt 0x08268; GFX12-GISEL-NEXT: v_max_num_f64_e32 v[0:1], v[0:1], v[0:1]8269; GFX12-GISEL-NEXT: v_max_num_f64_e32 v[2:3], v[2:3], v[2:3]8270; GFX12-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)8271; GFX12-GISEL-NEXT: v_min_num_f64_e32 v[0:1], v[0:1], v[2:3]8272; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]8273 %result = call double @llvm.minimumnum.f64(double %x, double %y)8274 ret double %result8275}8276 8277define double @v_minimumnum_f64_nnan_no_ieee(double %x, double %y) #0 {8278; GFX7-LABEL: v_minimumnum_f64_nnan_no_ieee:8279; GFX7: ; %bb.0:8280; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8281; GFX7-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]8282; GFX7-NEXT: s_setpc_b64 s[30:31]8283;8284; GFX8-LABEL: v_minimumnum_f64_nnan_no_ieee:8285; GFX8: ; %bb.0:8286; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8287; GFX8-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]8288; GFX8-NEXT: s_setpc_b64 s[30:31]8289;8290; GFX9-LABEL: v_minimumnum_f64_nnan_no_ieee:8291; GFX9: ; %bb.0:8292; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8293; GFX9-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]8294; GFX9-NEXT: s_setpc_b64 s[30:31]8295;8296; GFX10-LABEL: v_minimumnum_f64_nnan_no_ieee:8297; GFX10: ; %bb.0:8298; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8299; GFX10-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]8300; GFX10-NEXT: s_setpc_b64 s[30:31]8301;8302; GFX11-LABEL: v_minimumnum_f64_nnan_no_ieee:8303; GFX11: ; %bb.0:8304; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8305; GFX11-NEXT: v_min_f64 v[0:1], v[0:1], v[2:3]8306; GFX11-NEXT: s_setpc_b64 s[30:31]8307;8308; GFX12-LABEL: v_minimumnum_f64_nnan_no_ieee:8309; GFX12: ; %bb.0:8310; GFX12-NEXT: s_wait_loadcnt_dscnt 0x08311; GFX12-NEXT: s_wait_expcnt 0x08312; GFX12-NEXT: s_wait_samplecnt 0x08313; GFX12-NEXT: s_wait_bvhcnt 0x08314; GFX12-NEXT: s_wait_kmcnt 0x08315; GFX12-NEXT: v_min_num_f64_e32 v[0:1], v[0:1], v[2:3]8316; GFX12-NEXT: s_setpc_b64 s[30:31]8317 %result = call nnan double @llvm.minimumnum.f64(double %x, double %y)8318 ret double %result8319}8320 8321define <2 x half> @v_minimumnum_v2f16_no_ieee(<2 x half> %x, <2 x half> %y) #0 {8322; GFX7-SDAG-LABEL: v_minimumnum_v2f16_no_ieee:8323; GFX7-SDAG: ; %bb.0:8324; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8325; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v3, v38326; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v2, v28327; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v08328; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v1, v18329; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v3, v38330; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v2, v28331; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v08332; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v1, v18333; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v28334; GFX7-SDAG-NEXT: v_min_f32_e32 v1, v1, v38335; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]8336;8337; GFX7-GISEL-LABEL: v_minimumnum_v2f16_no_ieee:8338; GFX7-GISEL: ; %bb.0:8339; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8340; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v0, v08341; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v2, v28342; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v1, v18343; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v3, v38344; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v28345; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v0, v08346; GFX7-GISEL-NEXT: v_min_f32_e32 v1, v1, v38347; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v1, v18348; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]8349;8350; GFX8-SDAG-LABEL: v_minimumnum_v2f16_no_ieee:8351; GFX8-SDAG: ; %bb.0:8352; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8353; GFX8-SDAG-NEXT: v_min_f16_sdwa v2, v0, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_18354; GFX8-SDAG-NEXT: v_min_f16_e32 v0, v0, v18355; GFX8-SDAG-NEXT: v_or_b32_e32 v0, v0, v28356; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]8357;8358; GFX8-GISEL-LABEL: v_minimumnum_v2f16_no_ieee:8359; GFX8-GISEL: ; %bb.0:8360; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8361; GFX8-GISEL-NEXT: v_min_f16_e32 v2, v0, v18362; GFX8-GISEL-NEXT: v_min_f16_sdwa v0, v0, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_18363; GFX8-GISEL-NEXT: v_or_b32_e32 v0, v2, v08364; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]8365;8366; GFX9-LABEL: v_minimumnum_v2f16_no_ieee:8367; GFX9: ; %bb.0:8368; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8369; GFX9-NEXT: v_pk_min_f16 v0, v0, v18370; GFX9-NEXT: s_setpc_b64 s[30:31]8371;8372; GFX10-LABEL: v_minimumnum_v2f16_no_ieee:8373; GFX10: ; %bb.0:8374; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8375; GFX10-NEXT: v_pk_min_f16 v0, v0, v18376; GFX10-NEXT: s_setpc_b64 s[30:31]8377;8378; GFX11-LABEL: v_minimumnum_v2f16_no_ieee:8379; GFX11: ; %bb.0:8380; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8381; GFX11-NEXT: v_pk_min_f16 v0, v0, v18382; GFX11-NEXT: s_setpc_b64 s[30:31]8383;8384; GFX12-SDAG-LABEL: v_minimumnum_v2f16_no_ieee:8385; GFX12-SDAG: ; %bb.0:8386; GFX12-SDAG-NEXT: s_wait_loadcnt_dscnt 0x08387; GFX12-SDAG-NEXT: s_wait_expcnt 0x08388; GFX12-SDAG-NEXT: s_wait_samplecnt 0x08389; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x08390; GFX12-SDAG-NEXT: s_wait_kmcnt 0x08391; GFX12-SDAG-NEXT: v_pk_max_num_f16 v1, v1, v18392; GFX12-SDAG-NEXT: v_pk_max_num_f16 v0, v0, v08393; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)8394; GFX12-SDAG-NEXT: v_pk_min_num_f16 v0, v0, v18395; GFX12-SDAG-NEXT: s_setpc_b64 s[30:31]8396;8397; GFX12-GISEL-LABEL: v_minimumnum_v2f16_no_ieee:8398; GFX12-GISEL: ; %bb.0:8399; GFX12-GISEL-NEXT: s_wait_loadcnt_dscnt 0x08400; GFX12-GISEL-NEXT: s_wait_expcnt 0x08401; GFX12-GISEL-NEXT: s_wait_samplecnt 0x08402; GFX12-GISEL-NEXT: s_wait_bvhcnt 0x08403; GFX12-GISEL-NEXT: s_wait_kmcnt 0x08404; GFX12-GISEL-NEXT: v_pk_max_num_f16 v0, v0, v08405; GFX12-GISEL-NEXT: v_pk_max_num_f16 v1, v1, v18406; GFX12-GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)8407; GFX12-GISEL-NEXT: v_pk_min_num_f16 v0, v0, v18408; GFX12-GISEL-NEXT: s_setpc_b64 s[30:31]8409 %result = call <2 x half> @llvm.minimumnum.v2f16(<2 x half> %x, <2 x half> %y)8410 ret <2 x half> %result8411}8412 8413define <2 x half> @v_minimumnum_v2f16_nnan_no_ieee(<2 x half> %x, <2 x half> %y) #0 {8414; GFX7-SDAG-LABEL: v_minimumnum_v2f16_nnan_no_ieee:8415; GFX7-SDAG: ; %bb.0:8416; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8417; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v3, v38418; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v2, v28419; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v08420; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v1, v18421; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v3, v38422; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v2, v28423; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v08424; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v1, v18425; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v28426; GFX7-SDAG-NEXT: v_min_f32_e32 v1, v1, v38427; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]8428;8429; GFX7-GISEL-LABEL: v_minimumnum_v2f16_nnan_no_ieee:8430; GFX7-GISEL: ; %bb.0:8431; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8432; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v0, v08433; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v2, v28434; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v1, v18435; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v3, v38436; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v28437; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v0, v08438; GFX7-GISEL-NEXT: v_min_f32_e32 v1, v1, v38439; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v1, v18440; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]8441;8442; GFX8-SDAG-LABEL: v_minimumnum_v2f16_nnan_no_ieee:8443; GFX8-SDAG: ; %bb.0:8444; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8445; GFX8-SDAG-NEXT: v_min_f16_sdwa v2, v0, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_18446; GFX8-SDAG-NEXT: v_min_f16_e32 v0, v0, v18447; GFX8-SDAG-NEXT: v_or_b32_e32 v0, v0, v28448; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]8449;8450; GFX8-GISEL-LABEL: v_minimumnum_v2f16_nnan_no_ieee:8451; GFX8-GISEL: ; %bb.0:8452; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8453; GFX8-GISEL-NEXT: v_min_f16_e32 v2, v0, v18454; GFX8-GISEL-NEXT: v_min_f16_sdwa v0, v0, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_18455; GFX8-GISEL-NEXT: v_or_b32_e32 v0, v2, v08456; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]8457;8458; GFX9-LABEL: v_minimumnum_v2f16_nnan_no_ieee:8459; GFX9: ; %bb.0:8460; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8461; GFX9-NEXT: v_pk_min_f16 v0, v0, v18462; GFX9-NEXT: s_setpc_b64 s[30:31]8463;8464; GFX10-LABEL: v_minimumnum_v2f16_nnan_no_ieee:8465; GFX10: ; %bb.0:8466; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8467; GFX10-NEXT: v_pk_min_f16 v0, v0, v18468; GFX10-NEXT: s_setpc_b64 s[30:31]8469;8470; GFX11-LABEL: v_minimumnum_v2f16_nnan_no_ieee:8471; GFX11: ; %bb.0:8472; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8473; GFX11-NEXT: v_pk_min_f16 v0, v0, v18474; GFX11-NEXT: s_setpc_b64 s[30:31]8475;8476; GFX12-LABEL: v_minimumnum_v2f16_nnan_no_ieee:8477; GFX12: ; %bb.0:8478; GFX12-NEXT: s_wait_loadcnt_dscnt 0x08479; GFX12-NEXT: s_wait_expcnt 0x08480; GFX12-NEXT: s_wait_samplecnt 0x08481; GFX12-NEXT: s_wait_bvhcnt 0x08482; GFX12-NEXT: s_wait_kmcnt 0x08483; GFX12-NEXT: v_pk_min_num_f16 v0, v0, v18484; GFX12-NEXT: s_setpc_b64 s[30:31]8485 %result = call nnan <2 x half> @llvm.minimumnum.v2f16(<2 x half> %x, <2 x half> %y)8486 ret <2 x half> %result8487}8488 8489define <3 x half> @v_minimumnum_v3f16_nnan_no_ieee(<3 x half> %x, <3 x half> %y) #0 {8490; GFX7-SDAG-LABEL: v_minimumnum_v3f16_nnan_no_ieee:8491; GFX7-SDAG: ; %bb.0:8492; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8493; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v5, v58494; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v2, v28495; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v4, v48496; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v3, v38497; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v08498; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v1, v18499; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v5, v58500; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v4, v48501; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v3, v38502; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v08503; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v1, v18504; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v2, v28505; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v38506; GFX7-SDAG-NEXT: v_min_f32_e32 v1, v1, v48507; GFX7-SDAG-NEXT: v_min_f32_e32 v2, v2, v58508; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]8509;8510; GFX7-GISEL-LABEL: v_minimumnum_v3f16_nnan_no_ieee:8511; GFX7-GISEL: ; %bb.0:8512; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8513; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v0, v08514; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v3, v38515; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v1, v18516; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v2, v28517; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v38518; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v3, v48519; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v4, v58520; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v0, v08521; GFX7-GISEL-NEXT: v_min_f32_e32 v1, v1, v38522; GFX7-GISEL-NEXT: v_min_f32_e32 v2, v2, v48523; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v1, v18524; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v2, v28525; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]8526;8527; GFX8-SDAG-LABEL: v_minimumnum_v3f16_nnan_no_ieee:8528; GFX8-SDAG: ; %bb.0:8529; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8530; GFX8-SDAG-NEXT: v_min_f16_sdwa v4, v0, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_18531; GFX8-SDAG-NEXT: v_min_f16_e32 v0, v0, v28532; GFX8-SDAG-NEXT: v_min_f16_e32 v1, v1, v38533; GFX8-SDAG-NEXT: v_or_b32_e32 v0, v0, v48534; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]8535;8536; GFX8-GISEL-LABEL: v_minimumnum_v3f16_nnan_no_ieee:8537; GFX8-GISEL: ; %bb.0:8538; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8539; GFX8-GISEL-NEXT: v_min_f16_e32 v4, v0, v28540; GFX8-GISEL-NEXT: v_min_f16_sdwa v0, v0, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_18541; GFX8-GISEL-NEXT: v_min_f16_e32 v1, v1, v38542; GFX8-GISEL-NEXT: v_or_b32_e32 v0, v4, v08543; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]8544;8545; GFX9-SDAG-LABEL: v_minimumnum_v3f16_nnan_no_ieee:8546; GFX9-SDAG: ; %bb.0:8547; GFX9-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8548; GFX9-SDAG-NEXT: v_pk_min_f16 v1, v1, v38549; GFX9-SDAG-NEXT: v_pk_min_f16 v0, v0, v28550; GFX9-SDAG-NEXT: s_setpc_b64 s[30:31]8551;8552; GFX9-GISEL-LABEL: v_minimumnum_v3f16_nnan_no_ieee:8553; GFX9-GISEL: ; %bb.0:8554; GFX9-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8555; GFX9-GISEL-NEXT: v_pk_min_f16 v0, v0, v28556; GFX9-GISEL-NEXT: v_pk_min_f16 v1, v1, v38557; GFX9-GISEL-NEXT: s_setpc_b64 s[30:31]8558;8559; GFX10-LABEL: v_minimumnum_v3f16_nnan_no_ieee:8560; GFX10: ; %bb.0:8561; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8562; GFX10-NEXT: v_pk_min_f16 v0, v0, v28563; GFX10-NEXT: v_pk_min_f16 v1, v1, v38564; GFX10-NEXT: s_setpc_b64 s[30:31]8565;8566; GFX11-LABEL: v_minimumnum_v3f16_nnan_no_ieee:8567; GFX11: ; %bb.0:8568; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8569; GFX11-NEXT: v_pk_min_f16 v0, v0, v28570; GFX11-NEXT: v_pk_min_f16 v1, v1, v38571; GFX11-NEXT: s_setpc_b64 s[30:31]8572;8573; GFX12-LABEL: v_minimumnum_v3f16_nnan_no_ieee:8574; GFX12: ; %bb.0:8575; GFX12-NEXT: s_wait_loadcnt_dscnt 0x08576; GFX12-NEXT: s_wait_expcnt 0x08577; GFX12-NEXT: s_wait_samplecnt 0x08578; GFX12-NEXT: s_wait_bvhcnt 0x08579; GFX12-NEXT: s_wait_kmcnt 0x08580; GFX12-NEXT: v_pk_min_num_f16 v0, v0, v28581; GFX12-NEXT: v_pk_min_num_f16 v1, v1, v38582; GFX12-NEXT: s_setpc_b64 s[30:31]8583 %result = call nnan <3 x half> @llvm.minimumnum.v3f16(<3 x half> %x, <3 x half> %y)8584 ret <3 x half> %result8585}8586 8587define <4 x half> @v_minimumnum_v4f16_nnan_no_ieee(<4 x half> %x, <4 x half> %y) #0 {8588; GFX7-SDAG-LABEL: v_minimumnum_v4f16_nnan_no_ieee:8589; GFX7-SDAG: ; %bb.0:8590; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8591; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v7, v78592; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v6, v68593; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v3, v38594; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v2, v28595; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v5, v58596; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v4, v48597; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v08598; GFX7-SDAG-NEXT: v_cvt_f16_f32_e32 v1, v18599; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v7, v78600; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v6, v68601; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v5, v58602; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v4, v48603; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v08604; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v1, v18605; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v2, v28606; GFX7-SDAG-NEXT: v_cvt_f32_f16_e32 v3, v38607; GFX7-SDAG-NEXT: v_min_f32_e32 v0, v0, v48608; GFX7-SDAG-NEXT: v_min_f32_e32 v1, v1, v58609; GFX7-SDAG-NEXT: v_min_f32_e32 v2, v2, v68610; GFX7-SDAG-NEXT: v_min_f32_e32 v3, v3, v78611; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]8612;8613; GFX7-GISEL-LABEL: v_minimumnum_v4f16_nnan_no_ieee:8614; GFX7-GISEL: ; %bb.0:8615; GFX7-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8616; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v0, v08617; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v4, v48618; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v1, v18619; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v5, v58620; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v2, v28621; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v48622; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v4, v68623; GFX7-GISEL-NEXT: v_min_f32_e32 v1, v1, v58624; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v3, v38625; GFX7-GISEL-NEXT: v_cvt_f32_f16_e32 v5, v78626; GFX7-GISEL-NEXT: v_min_f32_e32 v2, v2, v48627; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v0, v08628; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v1, v18629; GFX7-GISEL-NEXT: v_min_f32_e32 v3, v3, v58630; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v2, v28631; GFX7-GISEL-NEXT: v_cvt_f16_f32_e32 v3, v38632; GFX7-GISEL-NEXT: s_setpc_b64 s[30:31]8633;8634; GFX8-SDAG-LABEL: v_minimumnum_v4f16_nnan_no_ieee:8635; GFX8-SDAG: ; %bb.0:8636; GFX8-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8637; GFX8-SDAG-NEXT: v_min_f16_sdwa v4, v1, v3 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_18638; GFX8-SDAG-NEXT: v_min_f16_sdwa v5, v0, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_18639; GFX8-SDAG-NEXT: v_min_f16_e32 v1, v1, v38640; GFX8-SDAG-NEXT: v_min_f16_e32 v0, v0, v28641; GFX8-SDAG-NEXT: v_or_b32_e32 v0, v0, v58642; GFX8-SDAG-NEXT: v_or_b32_e32 v1, v1, v48643; GFX8-SDAG-NEXT: s_setpc_b64 s[30:31]8644;8645; GFX8-GISEL-LABEL: v_minimumnum_v4f16_nnan_no_ieee:8646; GFX8-GISEL: ; %bb.0:8647; GFX8-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8648; GFX8-GISEL-NEXT: v_min_f16_e32 v4, v0, v28649; GFX8-GISEL-NEXT: v_min_f16_sdwa v0, v0, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_18650; GFX8-GISEL-NEXT: v_min_f16_e32 v2, v1, v38651; GFX8-GISEL-NEXT: v_min_f16_sdwa v1, v1, v3 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_18652; GFX8-GISEL-NEXT: v_or_b32_e32 v0, v4, v08653; GFX8-GISEL-NEXT: v_or_b32_e32 v1, v2, v18654; GFX8-GISEL-NEXT: s_setpc_b64 s[30:31]8655;8656; GFX9-LABEL: v_minimumnum_v4f16_nnan_no_ieee:8657; GFX9: ; %bb.0:8658; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8659; GFX9-NEXT: v_pk_min_f16 v0, v0, v28660; GFX9-NEXT: v_pk_min_f16 v1, v1, v38661; GFX9-NEXT: s_setpc_b64 s[30:31]8662;8663; GFX10-LABEL: v_minimumnum_v4f16_nnan_no_ieee:8664; GFX10: ; %bb.0:8665; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8666; GFX10-NEXT: v_pk_min_f16 v0, v0, v28667; GFX10-NEXT: v_pk_min_f16 v1, v1, v38668; GFX10-NEXT: s_setpc_b64 s[30:31]8669;8670; GFX11-LABEL: v_minimumnum_v4f16_nnan_no_ieee:8671; GFX11: ; %bb.0:8672; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8673; GFX11-NEXT: v_pk_min_f16 v0, v0, v28674; GFX11-NEXT: v_pk_min_f16 v1, v1, v38675; GFX11-NEXT: s_setpc_b64 s[30:31]8676;8677; GFX12-LABEL: v_minimumnum_v4f16_nnan_no_ieee:8678; GFX12: ; %bb.0:8679; GFX12-NEXT: s_wait_loadcnt_dscnt 0x08680; GFX12-NEXT: s_wait_expcnt 0x08681; GFX12-NEXT: s_wait_samplecnt 0x08682; GFX12-NEXT: s_wait_bvhcnt 0x08683; GFX12-NEXT: s_wait_kmcnt 0x08684; GFX12-NEXT: v_pk_min_num_f16 v0, v0, v28685; GFX12-NEXT: v_pk_min_num_f16 v1, v1, v38686; GFX12-NEXT: s_setpc_b64 s[30:31]8687 %result = call nnan <4 x half> @llvm.minimumnum.v4f16(<4 x half> %x, <4 x half> %y)8688 ret <4 x half> %result8689}8690 8691attributes #0 = { "amdgpu-ieee"="false" }8692;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:8693; GFX900: {{.*}}8694; GFX950: {{.*}}8695