2839 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx703 < %s | FileCheck -check-prefixes=GCN,GFX7 %s3; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx803 < %s | FileCheck -check-prefixes=GCN,GFX8 %s4; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 < %s | FileCheck -check-prefixes=GCN,GFX9 %s5; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 < %s | FileCheck -check-prefixes=GCN,GFX9,GFX900 %s6; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx950 < %s | FileCheck -check-prefixes=GCN,GFX9,GFX950 %s7; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1030 < %s | FileCheck -check-prefixes=GCN,GFX10 %s8; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1100 < %s | FileCheck -check-prefixes=GCN,GFX11 %s9; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1200 < %s | FileCheck -check-prefixes=GCN,GFX12 %s10 11define double @v_maximum_f64(double %src0, double %src1) {12; GFX7-LABEL: v_maximum_f64:13; GFX7: ; %bb.0:14; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)15; GFX7-NEXT: v_max_f64 v[4:5], v[0:1], v[2:3]16; GFX7-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]17; GFX7-NEXT: v_mov_b32_e32 v1, 0x7ff8000018; GFX7-NEXT: v_cndmask_b32_e64 v0, v4, 0, vcc19; GFX7-NEXT: v_cndmask_b32_e32 v1, v5, v1, vcc20; GFX7-NEXT: s_setpc_b64 s[30:31]21;22; GFX8-LABEL: v_maximum_f64:23; GFX8: ; %bb.0:24; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)25; GFX8-NEXT: v_max_f64 v[4:5], v[0:1], v[2:3]26; GFX8-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]27; GFX8-NEXT: v_mov_b32_e32 v1, 0x7ff8000028; GFX8-NEXT: v_cndmask_b32_e64 v0, v4, 0, vcc29; GFX8-NEXT: v_cndmask_b32_e32 v1, v5, v1, vcc30; GFX8-NEXT: s_setpc_b64 s[30:31]31;32; GFX900-LABEL: v_maximum_f64:33; GFX900: ; %bb.0:34; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)35; GFX900-NEXT: v_max_f64 v[4:5], v[0:1], v[2:3]36; GFX900-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]37; GFX900-NEXT: v_mov_b32_e32 v1, 0x7ff8000038; GFX900-NEXT: v_cndmask_b32_e64 v0, v4, 0, vcc39; GFX900-NEXT: v_cndmask_b32_e32 v1, v5, v1, vcc40; GFX900-NEXT: s_setpc_b64 s[30:31]41;42; GFX950-LABEL: v_maximum_f64:43; GFX950: ; %bb.0:44; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)45; GFX950-NEXT: v_max_f64 v[4:5], v[0:1], v[2:3]46; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]47; GFX950-NEXT: v_mov_b32_e32 v1, 0x7ff8000048; GFX950-NEXT: s_nop 049; GFX950-NEXT: v_cndmask_b32_e64 v0, v4, 0, vcc50; GFX950-NEXT: v_cndmask_b32_e32 v1, v5, v1, vcc51; GFX950-NEXT: s_setpc_b64 s[30:31]52;53; GFX10-LABEL: v_maximum_f64:54; GFX10: ; %bb.0:55; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)56; GFX10-NEXT: v_max_f64 v[4:5], v[0:1], v[2:3]57; GFX10-NEXT: v_cmp_u_f64_e32 vcc_lo, v[0:1], v[2:3]58; GFX10-NEXT: v_cndmask_b32_e64 v0, v4, 0, vcc_lo59; GFX10-NEXT: v_cndmask_b32_e64 v1, v5, 0x7ff80000, vcc_lo60; GFX10-NEXT: s_setpc_b64 s[30:31]61;62; GFX11-LABEL: v_maximum_f64:63; GFX11: ; %bb.0:64; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)65; GFX11-NEXT: v_max_f64 v[4:5], v[0:1], v[2:3]66; GFX11-NEXT: v_cmp_u_f64_e32 vcc_lo, v[0:1], v[2:3]67; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_3)68; GFX11-NEXT: v_cndmask_b32_e64 v0, v4, 0, vcc_lo69; GFX11-NEXT: v_cndmask_b32_e64 v1, v5, 0x7ff80000, vcc_lo70; GFX11-NEXT: s_setpc_b64 s[30:31]71;72; GFX12-LABEL: v_maximum_f64:73; GFX12: ; %bb.0:74; GFX12-NEXT: s_wait_loadcnt_dscnt 0x075; GFX12-NEXT: s_wait_expcnt 0x076; GFX12-NEXT: s_wait_samplecnt 0x077; GFX12-NEXT: s_wait_bvhcnt 0x078; GFX12-NEXT: s_wait_kmcnt 0x079; GFX12-NEXT: v_maximum_f64 v[0:1], v[0:1], v[2:3]80; GFX12-NEXT: s_setpc_b64 s[30:31]81 %op = call double @llvm.maximum.f64(double %src0, double %src1)82 ret double %op83}84 85define double @v_maximum_f64__nnan(double %src0, double %src1) {86; GFX7-LABEL: v_maximum_f64__nnan:87; GFX7: ; %bb.0:88; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)89; GFX7-NEXT: v_max_f64 v[0:1], v[0:1], v[2:3]90; GFX7-NEXT: s_setpc_b64 s[30:31]91;92; GFX8-LABEL: v_maximum_f64__nnan:93; GFX8: ; %bb.0:94; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)95; GFX8-NEXT: v_max_f64 v[0:1], v[0:1], v[2:3]96; GFX8-NEXT: s_setpc_b64 s[30:31]97;98; GFX9-LABEL: v_maximum_f64__nnan:99; GFX9: ; %bb.0:100; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)101; GFX9-NEXT: v_max_f64 v[0:1], v[0:1], v[2:3]102; GFX9-NEXT: s_setpc_b64 s[30:31]103;104; GFX10-LABEL: v_maximum_f64__nnan:105; GFX10: ; %bb.0:106; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)107; GFX10-NEXT: v_max_f64 v[0:1], v[0:1], v[2:3]108; GFX10-NEXT: s_setpc_b64 s[30:31]109;110; GFX11-LABEL: v_maximum_f64__nnan:111; GFX11: ; %bb.0:112; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)113; GFX11-NEXT: v_max_f64 v[0:1], v[0:1], v[2:3]114; GFX11-NEXT: s_setpc_b64 s[30:31]115;116; GFX12-LABEL: v_maximum_f64__nnan:117; GFX12: ; %bb.0:118; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0119; GFX12-NEXT: s_wait_expcnt 0x0120; GFX12-NEXT: s_wait_samplecnt 0x0121; GFX12-NEXT: s_wait_bvhcnt 0x0122; GFX12-NEXT: s_wait_kmcnt 0x0123; GFX12-NEXT: v_maximum_f64 v[0:1], v[0:1], v[2:3]124; GFX12-NEXT: s_setpc_b64 s[30:31]125 %op = call nnan double @llvm.maximum.f64(double %src0, double %src1)126 ret double %op127}128 129define double @v_maximum_f64__nsz(double %src0, double %src1) {130; GFX7-LABEL: v_maximum_f64__nsz:131; GFX7: ; %bb.0:132; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)133; GFX7-NEXT: v_max_f64 v[4:5], v[0:1], v[2:3]134; GFX7-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]135; GFX7-NEXT: v_mov_b32_e32 v1, 0x7ff80000136; GFX7-NEXT: v_cndmask_b32_e64 v0, v4, 0, vcc137; GFX7-NEXT: v_cndmask_b32_e32 v1, v5, v1, vcc138; GFX7-NEXT: s_setpc_b64 s[30:31]139;140; GFX8-LABEL: v_maximum_f64__nsz:141; GFX8: ; %bb.0:142; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)143; GFX8-NEXT: v_max_f64 v[4:5], v[0:1], v[2:3]144; GFX8-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]145; GFX8-NEXT: v_mov_b32_e32 v1, 0x7ff80000146; GFX8-NEXT: v_cndmask_b32_e64 v0, v4, 0, vcc147; GFX8-NEXT: v_cndmask_b32_e32 v1, v5, v1, vcc148; GFX8-NEXT: s_setpc_b64 s[30:31]149;150; GFX900-LABEL: v_maximum_f64__nsz:151; GFX900: ; %bb.0:152; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)153; GFX900-NEXT: v_max_f64 v[4:5], v[0:1], v[2:3]154; GFX900-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]155; GFX900-NEXT: v_mov_b32_e32 v1, 0x7ff80000156; GFX900-NEXT: v_cndmask_b32_e64 v0, v4, 0, vcc157; GFX900-NEXT: v_cndmask_b32_e32 v1, v5, v1, vcc158; GFX900-NEXT: s_setpc_b64 s[30:31]159;160; GFX950-LABEL: v_maximum_f64__nsz:161; GFX950: ; %bb.0:162; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)163; GFX950-NEXT: v_max_f64 v[4:5], v[0:1], v[2:3]164; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]165; GFX950-NEXT: v_mov_b32_e32 v1, 0x7ff80000166; GFX950-NEXT: s_nop 0167; GFX950-NEXT: v_cndmask_b32_e64 v0, v4, 0, vcc168; GFX950-NEXT: v_cndmask_b32_e32 v1, v5, v1, vcc169; GFX950-NEXT: s_setpc_b64 s[30:31]170;171; GFX10-LABEL: v_maximum_f64__nsz:172; GFX10: ; %bb.0:173; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)174; GFX10-NEXT: v_max_f64 v[4:5], v[0:1], v[2:3]175; GFX10-NEXT: v_cmp_u_f64_e32 vcc_lo, v[0:1], v[2:3]176; GFX10-NEXT: v_cndmask_b32_e64 v0, v4, 0, vcc_lo177; GFX10-NEXT: v_cndmask_b32_e64 v1, v5, 0x7ff80000, vcc_lo178; GFX10-NEXT: s_setpc_b64 s[30:31]179;180; GFX11-LABEL: v_maximum_f64__nsz:181; GFX11: ; %bb.0:182; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)183; GFX11-NEXT: v_max_f64 v[4:5], v[0:1], v[2:3]184; GFX11-NEXT: v_cmp_u_f64_e32 vcc_lo, v[0:1], v[2:3]185; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_3)186; GFX11-NEXT: v_cndmask_b32_e64 v0, v4, 0, vcc_lo187; GFX11-NEXT: v_cndmask_b32_e64 v1, v5, 0x7ff80000, vcc_lo188; GFX11-NEXT: s_setpc_b64 s[30:31]189;190; GFX12-LABEL: v_maximum_f64__nsz:191; GFX12: ; %bb.0:192; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0193; GFX12-NEXT: s_wait_expcnt 0x0194; GFX12-NEXT: s_wait_samplecnt 0x0195; GFX12-NEXT: s_wait_bvhcnt 0x0196; GFX12-NEXT: s_wait_kmcnt 0x0197; GFX12-NEXT: v_maximum_f64 v[0:1], v[0:1], v[2:3]198; GFX12-NEXT: s_setpc_b64 s[30:31]199 %op = call nsz double @llvm.maximum.f64(double %src0, double %src1)200 ret double %op201}202 203define double @v_maximum_f64__nnan_nsz(double %src0, double %src1) {204; GFX7-LABEL: v_maximum_f64__nnan_nsz:205; GFX7: ; %bb.0:206; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)207; GFX7-NEXT: v_max_f64 v[0:1], v[0:1], v[2:3]208; GFX7-NEXT: s_setpc_b64 s[30:31]209;210; GFX8-LABEL: v_maximum_f64__nnan_nsz:211; GFX8: ; %bb.0:212; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)213; GFX8-NEXT: v_max_f64 v[0:1], v[0:1], v[2:3]214; GFX8-NEXT: s_setpc_b64 s[30:31]215;216; GFX9-LABEL: v_maximum_f64__nnan_nsz:217; GFX9: ; %bb.0:218; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)219; GFX9-NEXT: v_max_f64 v[0:1], v[0:1], v[2:3]220; GFX9-NEXT: s_setpc_b64 s[30:31]221;222; GFX10-LABEL: v_maximum_f64__nnan_nsz:223; GFX10: ; %bb.0:224; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)225; GFX10-NEXT: v_max_f64 v[0:1], v[0:1], v[2:3]226; GFX10-NEXT: s_setpc_b64 s[30:31]227;228; GFX11-LABEL: v_maximum_f64__nnan_nsz:229; GFX11: ; %bb.0:230; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)231; GFX11-NEXT: v_max_f64 v[0:1], v[0:1], v[2:3]232; GFX11-NEXT: s_setpc_b64 s[30:31]233;234; GFX12-LABEL: v_maximum_f64__nnan_nsz:235; GFX12: ; %bb.0:236; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0237; GFX12-NEXT: s_wait_expcnt 0x0238; GFX12-NEXT: s_wait_samplecnt 0x0239; GFX12-NEXT: s_wait_bvhcnt 0x0240; GFX12-NEXT: s_wait_kmcnt 0x0241; GFX12-NEXT: v_maximum_f64 v[0:1], v[0:1], v[2:3]242; GFX12-NEXT: s_setpc_b64 s[30:31]243 %op = call nnan nsz double @llvm.maximum.f64(double %src0, double %src1)244 ret double %op245}246 247define double @v_maximum_f64__nnan_src0(double %arg0, double %src1) {248; GFX7-LABEL: v_maximum_f64__nnan_src0:249; GFX7: ; %bb.0:250; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)251; GFX7-NEXT: v_add_f64 v[0:1], v[0:1], 1.0252; GFX7-NEXT: v_max_f64 v[4:5], v[0:1], v[2:3]253; GFX7-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]254; GFX7-NEXT: v_mov_b32_e32 v1, 0x7ff80000255; GFX7-NEXT: v_cndmask_b32_e64 v0, v4, 0, vcc256; GFX7-NEXT: v_cndmask_b32_e32 v1, v5, v1, vcc257; GFX7-NEXT: s_setpc_b64 s[30:31]258;259; GFX8-LABEL: v_maximum_f64__nnan_src0:260; GFX8: ; %bb.0:261; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)262; GFX8-NEXT: v_add_f64 v[0:1], v[0:1], 1.0263; GFX8-NEXT: v_max_f64 v[4:5], v[0:1], v[2:3]264; GFX8-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]265; GFX8-NEXT: v_mov_b32_e32 v1, 0x7ff80000266; GFX8-NEXT: v_cndmask_b32_e64 v0, v4, 0, vcc267; GFX8-NEXT: v_cndmask_b32_e32 v1, v5, v1, vcc268; GFX8-NEXT: s_setpc_b64 s[30:31]269;270; GFX900-LABEL: v_maximum_f64__nnan_src0:271; GFX900: ; %bb.0:272; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)273; GFX900-NEXT: v_add_f64 v[0:1], v[0:1], 1.0274; GFX900-NEXT: v_max_f64 v[4:5], v[0:1], v[2:3]275; GFX900-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]276; GFX900-NEXT: v_mov_b32_e32 v1, 0x7ff80000277; GFX900-NEXT: v_cndmask_b32_e64 v0, v4, 0, vcc278; GFX900-NEXT: v_cndmask_b32_e32 v1, v5, v1, vcc279; GFX900-NEXT: s_setpc_b64 s[30:31]280;281; GFX950-LABEL: v_maximum_f64__nnan_src0:282; GFX950: ; %bb.0:283; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)284; GFX950-NEXT: v_add_f64 v[0:1], v[0:1], 1.0285; GFX950-NEXT: v_max_f64 v[4:5], v[0:1], v[2:3]286; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]287; GFX950-NEXT: v_mov_b32_e32 v1, 0x7ff80000288; GFX950-NEXT: s_nop 0289; GFX950-NEXT: v_cndmask_b32_e64 v0, v4, 0, vcc290; GFX950-NEXT: v_cndmask_b32_e32 v1, v5, v1, vcc291; GFX950-NEXT: s_setpc_b64 s[30:31]292;293; GFX10-LABEL: v_maximum_f64__nnan_src0:294; GFX10: ; %bb.0:295; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)296; GFX10-NEXT: v_add_f64 v[0:1], v[0:1], 1.0297; GFX10-NEXT: v_max_f64 v[4:5], v[0:1], v[2:3]298; GFX10-NEXT: v_cmp_u_f64_e32 vcc_lo, v[0:1], v[2:3]299; GFX10-NEXT: v_cndmask_b32_e64 v0, v4, 0, vcc_lo300; GFX10-NEXT: v_cndmask_b32_e64 v1, v5, 0x7ff80000, vcc_lo301; GFX10-NEXT: s_setpc_b64 s[30:31]302;303; GFX11-LABEL: v_maximum_f64__nnan_src0:304; GFX11: ; %bb.0:305; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)306; GFX11-NEXT: v_add_f64 v[0:1], v[0:1], 1.0307; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)308; GFX11-NEXT: v_max_f64 v[4:5], v[0:1], v[2:3]309; GFX11-NEXT: v_cmp_u_f64_e32 vcc_lo, v[0:1], v[2:3]310; GFX11-NEXT: v_cndmask_b32_e64 v0, v4, 0, vcc_lo311; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_3)312; GFX11-NEXT: v_cndmask_b32_e64 v1, v5, 0x7ff80000, vcc_lo313; GFX11-NEXT: s_setpc_b64 s[30:31]314;315; GFX12-LABEL: v_maximum_f64__nnan_src0:316; GFX12: ; %bb.0:317; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0318; GFX12-NEXT: s_wait_expcnt 0x0319; GFX12-NEXT: s_wait_samplecnt 0x0320; GFX12-NEXT: s_wait_bvhcnt 0x0321; GFX12-NEXT: s_wait_kmcnt 0x0322; GFX12-NEXT: v_add_f64_e32 v[0:1], 1.0, v[0:1]323; GFX12-NEXT: s_delay_alu instid0(VALU_DEP_1)324; GFX12-NEXT: v_maximum_f64 v[0:1], v[0:1], v[2:3]325; GFX12-NEXT: s_setpc_b64 s[30:31]326 %src0 = fadd nnan double %arg0, 1.0327 %op = call double @llvm.maximum.f64(double %src0, double %src1)328 ret double %op329}330 331define double @v_maximum_f64__nnan_src1(double %src0, double %arg1) {332; GFX7-LABEL: v_maximum_f64__nnan_src1:333; GFX7: ; %bb.0:334; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)335; GFX7-NEXT: v_add_f64 v[2:3], v[2:3], 1.0336; GFX7-NEXT: v_max_f64 v[4:5], v[0:1], v[2:3]337; GFX7-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]338; GFX7-NEXT: v_mov_b32_e32 v1, 0x7ff80000339; GFX7-NEXT: v_cndmask_b32_e64 v0, v4, 0, vcc340; GFX7-NEXT: v_cndmask_b32_e32 v1, v5, v1, vcc341; GFX7-NEXT: s_setpc_b64 s[30:31]342;343; GFX8-LABEL: v_maximum_f64__nnan_src1:344; GFX8: ; %bb.0:345; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)346; GFX8-NEXT: v_add_f64 v[2:3], v[2:3], 1.0347; GFX8-NEXT: v_max_f64 v[4:5], v[0:1], v[2:3]348; GFX8-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]349; GFX8-NEXT: v_mov_b32_e32 v1, 0x7ff80000350; GFX8-NEXT: v_cndmask_b32_e64 v0, v4, 0, vcc351; GFX8-NEXT: v_cndmask_b32_e32 v1, v5, v1, vcc352; GFX8-NEXT: s_setpc_b64 s[30:31]353;354; GFX900-LABEL: v_maximum_f64__nnan_src1:355; GFX900: ; %bb.0:356; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)357; GFX900-NEXT: v_add_f64 v[2:3], v[2:3], 1.0358; GFX900-NEXT: v_max_f64 v[4:5], v[0:1], v[2:3]359; GFX900-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]360; GFX900-NEXT: v_mov_b32_e32 v1, 0x7ff80000361; GFX900-NEXT: v_cndmask_b32_e64 v0, v4, 0, vcc362; GFX900-NEXT: v_cndmask_b32_e32 v1, v5, v1, vcc363; GFX900-NEXT: s_setpc_b64 s[30:31]364;365; GFX950-LABEL: v_maximum_f64__nnan_src1:366; GFX950: ; %bb.0:367; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)368; GFX950-NEXT: v_add_f64 v[2:3], v[2:3], 1.0369; GFX950-NEXT: v_max_f64 v[4:5], v[0:1], v[2:3]370; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]371; GFX950-NEXT: v_mov_b32_e32 v1, 0x7ff80000372; GFX950-NEXT: s_nop 0373; GFX950-NEXT: v_cndmask_b32_e64 v0, v4, 0, vcc374; GFX950-NEXT: v_cndmask_b32_e32 v1, v5, v1, vcc375; GFX950-NEXT: s_setpc_b64 s[30:31]376;377; GFX10-LABEL: v_maximum_f64__nnan_src1:378; GFX10: ; %bb.0:379; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)380; GFX10-NEXT: v_add_f64 v[2:3], v[2:3], 1.0381; GFX10-NEXT: v_max_f64 v[4:5], v[0:1], v[2:3]382; GFX10-NEXT: v_cmp_u_f64_e32 vcc_lo, v[0:1], v[2:3]383; GFX10-NEXT: v_cndmask_b32_e64 v0, v4, 0, vcc_lo384; GFX10-NEXT: v_cndmask_b32_e64 v1, v5, 0x7ff80000, vcc_lo385; GFX10-NEXT: s_setpc_b64 s[30:31]386;387; GFX11-LABEL: v_maximum_f64__nnan_src1:388; GFX11: ; %bb.0:389; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)390; GFX11-NEXT: v_add_f64 v[2:3], v[2:3], 1.0391; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)392; GFX11-NEXT: v_max_f64 v[4:5], v[0:1], v[2:3]393; GFX11-NEXT: v_cmp_u_f64_e32 vcc_lo, v[0:1], v[2:3]394; GFX11-NEXT: v_cndmask_b32_e64 v0, v4, 0, vcc_lo395; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_3)396; GFX11-NEXT: v_cndmask_b32_e64 v1, v5, 0x7ff80000, vcc_lo397; GFX11-NEXT: s_setpc_b64 s[30:31]398;399; GFX12-LABEL: v_maximum_f64__nnan_src1:400; GFX12: ; %bb.0:401; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0402; GFX12-NEXT: s_wait_expcnt 0x0403; GFX12-NEXT: s_wait_samplecnt 0x0404; GFX12-NEXT: s_wait_bvhcnt 0x0405; GFX12-NEXT: s_wait_kmcnt 0x0406; GFX12-NEXT: v_add_f64_e32 v[2:3], 1.0, v[2:3]407; GFX12-NEXT: s_delay_alu instid0(VALU_DEP_1)408; GFX12-NEXT: v_maximum_f64 v[0:1], v[0:1], v[2:3]409; GFX12-NEXT: s_setpc_b64 s[30:31]410 %src1 = fadd nnan double %arg1, 1.0411 %op = call double @llvm.maximum.f64(double %src0, double %src1)412 ret double %op413}414 415define void @s_maximum_f64(double inreg %src0, double inreg %src1) {416; GFX7-LABEL: s_maximum_f64:417; GFX7: ; %bb.0:418; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)419; GFX7-NEXT: v_mov_b32_e32 v0, s18420; GFX7-NEXT: v_mov_b32_e32 v1, s19421; GFX7-NEXT: v_max_f64 v[2:3], s[16:17], v[0:1]422; GFX7-NEXT: v_cmp_u_f64_e32 vcc, s[16:17], v[0:1]423; GFX7-NEXT: v_mov_b32_e32 v4, 0x7ff80000424; GFX7-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc425; GFX7-NEXT: v_cndmask_b32_e64 v0, v2, 0, vcc426; GFX7-NEXT: ;;#ASMSTART427; GFX7-NEXT: ; use v[0:1]428; GFX7-NEXT: ;;#ASMEND429; GFX7-NEXT: s_setpc_b64 s[30:31]430;431; GFX8-LABEL: s_maximum_f64:432; GFX8: ; %bb.0:433; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)434; GFX8-NEXT: v_mov_b32_e32 v0, s18435; GFX8-NEXT: v_mov_b32_e32 v1, s19436; GFX8-NEXT: v_max_f64 v[2:3], s[16:17], v[0:1]437; GFX8-NEXT: v_cmp_u_f64_e32 vcc, s[16:17], v[0:1]438; GFX8-NEXT: v_mov_b32_e32 v4, 0x7ff80000439; GFX8-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc440; GFX8-NEXT: v_cndmask_b32_e64 v0, v2, 0, vcc441; GFX8-NEXT: ;;#ASMSTART442; GFX8-NEXT: ; use v[0:1]443; GFX8-NEXT: ;;#ASMEND444; GFX8-NEXT: s_setpc_b64 s[30:31]445;446; GFX900-LABEL: s_maximum_f64:447; GFX900: ; %bb.0:448; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)449; GFX900-NEXT: v_mov_b32_e32 v0, s18450; GFX900-NEXT: v_mov_b32_e32 v1, s19451; GFX900-NEXT: v_max_f64 v[2:3], s[16:17], v[0:1]452; GFX900-NEXT: v_cmp_u_f64_e32 vcc, s[16:17], v[0:1]453; GFX900-NEXT: v_mov_b32_e32 v4, 0x7ff80000454; GFX900-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc455; GFX900-NEXT: v_cndmask_b32_e64 v0, v2, 0, vcc456; GFX900-NEXT: ;;#ASMSTART457; GFX900-NEXT: ; use v[0:1]458; GFX900-NEXT: ;;#ASMEND459; GFX900-NEXT: s_setpc_b64 s[30:31]460;461; GFX950-LABEL: s_maximum_f64:462; GFX950: ; %bb.0:463; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)464; GFX950-NEXT: v_mov_b64_e32 v[0:1], s[2:3]465; GFX950-NEXT: v_max_f64 v[2:3], s[0:1], v[0:1]466; GFX950-NEXT: v_mov_b32_e32 v4, 0x7ff80000467; GFX950-NEXT: v_cmp_u_f64_e32 vcc, s[0:1], v[0:1]468; GFX950-NEXT: s_nop 1469; GFX950-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc470; GFX950-NEXT: v_cndmask_b32_e64 v0, v2, 0, vcc471; GFX950-NEXT: ;;#ASMSTART472; GFX950-NEXT: ; use v[0:1]473; GFX950-NEXT: ;;#ASMEND474; GFX950-NEXT: s_setpc_b64 s[30:31]475;476; GFX10-LABEL: s_maximum_f64:477; GFX10: ; %bb.0:478; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)479; GFX10-NEXT: v_max_f64 v[0:1], s[16:17], s[18:19]480; GFX10-NEXT: v_cmp_u_f64_e64 s4, s[16:17], s[18:19]481; GFX10-NEXT: v_cndmask_b32_e64 v1, v1, 0x7ff80000, s4482; GFX10-NEXT: v_cndmask_b32_e64 v0, v0, 0, s4483; GFX10-NEXT: ;;#ASMSTART484; GFX10-NEXT: ; use v[0:1]485; GFX10-NEXT: ;;#ASMEND486; GFX10-NEXT: s_setpc_b64 s[30:31]487;488; GFX11-LABEL: s_maximum_f64:489; GFX11: ; %bb.0:490; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)491; GFX11-NEXT: v_max_f64 v[0:1], s[0:1], s[2:3]492; GFX11-NEXT: v_cmp_u_f64_e64 s0, s[0:1], s[2:3]493; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_3)494; GFX11-NEXT: v_cndmask_b32_e64 v1, v1, 0x7ff80000, s0495; GFX11-NEXT: v_cndmask_b32_e64 v0, v0, 0, s0496; GFX11-NEXT: ;;#ASMSTART497; GFX11-NEXT: ; use v[0:1]498; GFX11-NEXT: ;;#ASMEND499; GFX11-NEXT: s_setpc_b64 s[30:31]500;501; GFX12-LABEL: s_maximum_f64:502; GFX12: ; %bb.0:503; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0504; GFX12-NEXT: s_wait_expcnt 0x0505; GFX12-NEXT: s_wait_samplecnt 0x0506; GFX12-NEXT: s_wait_bvhcnt 0x0507; GFX12-NEXT: s_wait_kmcnt 0x0508; GFX12-NEXT: v_maximum_f64 v[0:1], s[0:1], s[2:3]509; GFX12-NEXT: ;;#ASMSTART510; GFX12-NEXT: ; use v[0:1]511; GFX12-NEXT: ;;#ASMEND512; GFX12-NEXT: s_setpc_b64 s[30:31]513 %op = call double @llvm.maximum.f64(double %src0, double %src1)514 call void asm sideeffect "; use $0", "s"(double %op)515 ret void516}517 518define <2 x double> @v_maximum_v2f64(<2 x double> %src0, <2 x double> %src1) {519; GFX7-LABEL: v_maximum_v2f64:520; GFX7: ; %bb.0:521; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)522; GFX7-NEXT: v_max_f64 v[8:9], v[0:1], v[4:5]523; GFX7-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]524; GFX7-NEXT: v_max_f64 v[4:5], v[2:3], v[6:7]525; GFX7-NEXT: v_cmp_u_f64_e64 s[4:5], v[2:3], v[6:7]526; GFX7-NEXT: v_mov_b32_e32 v3, 0x7ff80000527; GFX7-NEXT: v_cndmask_b32_e64 v0, v8, 0, vcc528; GFX7-NEXT: v_cndmask_b32_e32 v1, v9, v3, vcc529; GFX7-NEXT: v_cndmask_b32_e64 v2, v4, 0, s[4:5]530; GFX7-NEXT: v_cndmask_b32_e64 v3, v5, v3, s[4:5]531; GFX7-NEXT: s_setpc_b64 s[30:31]532;533; GFX8-LABEL: v_maximum_v2f64:534; GFX8: ; %bb.0:535; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)536; GFX8-NEXT: v_max_f64 v[8:9], v[0:1], v[4:5]537; GFX8-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]538; GFX8-NEXT: v_max_f64 v[4:5], v[2:3], v[6:7]539; GFX8-NEXT: v_cmp_u_f64_e64 s[4:5], v[2:3], v[6:7]540; GFX8-NEXT: v_mov_b32_e32 v3, 0x7ff80000541; GFX8-NEXT: v_cndmask_b32_e64 v0, v8, 0, vcc542; GFX8-NEXT: v_cndmask_b32_e32 v1, v9, v3, vcc543; GFX8-NEXT: v_cndmask_b32_e64 v2, v4, 0, s[4:5]544; GFX8-NEXT: v_cndmask_b32_e64 v3, v5, v3, s[4:5]545; GFX8-NEXT: s_setpc_b64 s[30:31]546;547; GFX900-LABEL: v_maximum_v2f64:548; GFX900: ; %bb.0:549; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)550; GFX900-NEXT: v_max_f64 v[8:9], v[0:1], v[4:5]551; GFX900-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]552; GFX900-NEXT: v_max_f64 v[4:5], v[2:3], v[6:7]553; GFX900-NEXT: v_cmp_u_f64_e64 s[4:5], v[2:3], v[6:7]554; GFX900-NEXT: v_mov_b32_e32 v3, 0x7ff80000555; GFX900-NEXT: v_cndmask_b32_e64 v0, v8, 0, vcc556; GFX900-NEXT: v_cndmask_b32_e32 v1, v9, v3, vcc557; GFX900-NEXT: v_cndmask_b32_e64 v2, v4, 0, s[4:5]558; GFX900-NEXT: v_cndmask_b32_e64 v3, v5, v3, s[4:5]559; GFX900-NEXT: s_setpc_b64 s[30:31]560;561; GFX950-LABEL: v_maximum_v2f64:562; GFX950: ; %bb.0:563; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)564; GFX950-NEXT: v_max_f64 v[8:9], v[0:1], v[4:5]565; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]566; GFX950-NEXT: v_max_f64 v[4:5], v[2:3], v[6:7]567; GFX950-NEXT: s_nop 0568; GFX950-NEXT: v_cndmask_b32_e64 v0, v8, 0, vcc569; GFX950-NEXT: v_mov_b32_e32 v8, 0x7ff80000570; GFX950-NEXT: v_cndmask_b32_e32 v1, v9, v8, vcc571; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[2:3], v[6:7]572; GFX950-NEXT: s_nop 1573; GFX950-NEXT: v_cndmask_b32_e64 v2, v4, 0, vcc574; GFX950-NEXT: v_cndmask_b32_e32 v3, v5, v8, vcc575; GFX950-NEXT: s_setpc_b64 s[30:31]576;577; GFX10-LABEL: v_maximum_v2f64:578; GFX10: ; %bb.0:579; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)580; GFX10-NEXT: v_max_f64 v[8:9], v[0:1], v[4:5]581; GFX10-NEXT: v_cmp_u_f64_e32 vcc_lo, v[0:1], v[4:5]582; GFX10-NEXT: v_max_f64 v[4:5], v[2:3], v[6:7]583; GFX10-NEXT: v_cmp_u_f64_e64 s4, v[2:3], v[6:7]584; GFX10-NEXT: v_cndmask_b32_e64 v0, v8, 0, vcc_lo585; GFX10-NEXT: v_cndmask_b32_e64 v1, v9, 0x7ff80000, vcc_lo586; GFX10-NEXT: v_cndmask_b32_e64 v2, v4, 0, s4587; GFX10-NEXT: v_cndmask_b32_e64 v3, v5, 0x7ff80000, s4588; GFX10-NEXT: s_setpc_b64 s[30:31]589;590; GFX11-LABEL: v_maximum_v2f64:591; GFX11: ; %bb.0:592; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)593; GFX11-NEXT: v_max_f64 v[8:9], v[0:1], v[4:5]594; GFX11-NEXT: v_cmp_u_f64_e32 vcc_lo, v[0:1], v[4:5]595; GFX11-NEXT: v_max_f64 v[4:5], v[2:3], v[6:7]596; GFX11-NEXT: v_cmp_u_f64_e64 s0, v[2:3], v[6:7]597; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_4) | instskip(SKIP_1) | instid1(VALU_DEP_3)598; GFX11-NEXT: v_cndmask_b32_e64 v0, v8, 0, vcc_lo599; GFX11-NEXT: v_cndmask_b32_e64 v1, v9, 0x7ff80000, vcc_lo600; GFX11-NEXT: v_cndmask_b32_e64 v2, v4, 0, s0601; GFX11-NEXT: v_cndmask_b32_e64 v3, v5, 0x7ff80000, s0602; GFX11-NEXT: s_setpc_b64 s[30:31]603;604; GFX12-LABEL: v_maximum_v2f64:605; GFX12: ; %bb.0:606; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0607; GFX12-NEXT: s_wait_expcnt 0x0608; GFX12-NEXT: s_wait_samplecnt 0x0609; GFX12-NEXT: s_wait_bvhcnt 0x0610; GFX12-NEXT: s_wait_kmcnt 0x0611; GFX12-NEXT: v_maximum_f64 v[0:1], v[0:1], v[4:5]612; GFX12-NEXT: v_maximum_f64 v[2:3], v[2:3], v[6:7]613; GFX12-NEXT: s_setpc_b64 s[30:31]614 %op = call <2 x double> @llvm.maximum.v2f64(<2 x double> %src0, <2 x double> %src1)615 ret <2 x double> %op616}617 618define <2 x double> @v_maximum_v2f64__nnan(<2 x double> %src0, <2 x double> %src1) {619; GFX7-LABEL: v_maximum_v2f64__nnan:620; GFX7: ; %bb.0:621; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)622; GFX7-NEXT: v_max_f64 v[0:1], v[0:1], v[4:5]623; GFX7-NEXT: v_max_f64 v[2:3], v[2:3], v[6:7]624; GFX7-NEXT: s_setpc_b64 s[30:31]625;626; GFX8-LABEL: v_maximum_v2f64__nnan:627; GFX8: ; %bb.0:628; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)629; GFX8-NEXT: v_max_f64 v[0:1], v[0:1], v[4:5]630; GFX8-NEXT: v_max_f64 v[2:3], v[2:3], v[6:7]631; GFX8-NEXT: s_setpc_b64 s[30:31]632;633; GFX9-LABEL: v_maximum_v2f64__nnan:634; GFX9: ; %bb.0:635; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)636; GFX9-NEXT: v_max_f64 v[0:1], v[0:1], v[4:5]637; GFX9-NEXT: v_max_f64 v[2:3], v[2:3], v[6:7]638; GFX9-NEXT: s_setpc_b64 s[30:31]639;640; GFX10-LABEL: v_maximum_v2f64__nnan:641; GFX10: ; %bb.0:642; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)643; GFX10-NEXT: v_max_f64 v[0:1], v[0:1], v[4:5]644; GFX10-NEXT: v_max_f64 v[2:3], v[2:3], v[6:7]645; GFX10-NEXT: s_setpc_b64 s[30:31]646;647; GFX11-LABEL: v_maximum_v2f64__nnan:648; GFX11: ; %bb.0:649; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)650; GFX11-NEXT: v_max_f64 v[0:1], v[0:1], v[4:5]651; GFX11-NEXT: v_max_f64 v[2:3], v[2:3], v[6:7]652; GFX11-NEXT: s_setpc_b64 s[30:31]653;654; GFX12-LABEL: v_maximum_v2f64__nnan:655; GFX12: ; %bb.0:656; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0657; GFX12-NEXT: s_wait_expcnt 0x0658; GFX12-NEXT: s_wait_samplecnt 0x0659; GFX12-NEXT: s_wait_bvhcnt 0x0660; GFX12-NEXT: s_wait_kmcnt 0x0661; GFX12-NEXT: v_maximum_f64 v[0:1], v[0:1], v[4:5]662; GFX12-NEXT: v_maximum_f64 v[2:3], v[2:3], v[6:7]663; GFX12-NEXT: s_setpc_b64 s[30:31]664 %op = call nnan <2 x double> @llvm.maximum.v2f64(<2 x double> %src0, <2 x double> %src1)665 ret <2 x double> %op666}667 668define <2 x double> @v_maximum_v2f64__nsz(<2 x double> %src0, <2 x double> %src1) {669; GFX7-LABEL: v_maximum_v2f64__nsz:670; GFX7: ; %bb.0:671; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)672; GFX7-NEXT: v_max_f64 v[8:9], v[0:1], v[4:5]673; GFX7-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]674; GFX7-NEXT: v_max_f64 v[4:5], v[2:3], v[6:7]675; GFX7-NEXT: v_cmp_u_f64_e64 s[4:5], v[2:3], v[6:7]676; GFX7-NEXT: v_mov_b32_e32 v3, 0x7ff80000677; GFX7-NEXT: v_cndmask_b32_e64 v0, v8, 0, vcc678; GFX7-NEXT: v_cndmask_b32_e32 v1, v9, v3, vcc679; GFX7-NEXT: v_cndmask_b32_e64 v2, v4, 0, s[4:5]680; GFX7-NEXT: v_cndmask_b32_e64 v3, v5, v3, s[4:5]681; GFX7-NEXT: s_setpc_b64 s[30:31]682;683; GFX8-LABEL: v_maximum_v2f64__nsz:684; GFX8: ; %bb.0:685; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)686; GFX8-NEXT: v_max_f64 v[8:9], v[0:1], v[4:5]687; GFX8-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]688; GFX8-NEXT: v_max_f64 v[4:5], v[2:3], v[6:7]689; GFX8-NEXT: v_cmp_u_f64_e64 s[4:5], v[2:3], v[6:7]690; GFX8-NEXT: v_mov_b32_e32 v3, 0x7ff80000691; GFX8-NEXT: v_cndmask_b32_e64 v0, v8, 0, vcc692; GFX8-NEXT: v_cndmask_b32_e32 v1, v9, v3, vcc693; GFX8-NEXT: v_cndmask_b32_e64 v2, v4, 0, s[4:5]694; GFX8-NEXT: v_cndmask_b32_e64 v3, v5, v3, s[4:5]695; GFX8-NEXT: s_setpc_b64 s[30:31]696;697; GFX900-LABEL: v_maximum_v2f64__nsz:698; GFX900: ; %bb.0:699; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)700; GFX900-NEXT: v_max_f64 v[8:9], v[0:1], v[4:5]701; GFX900-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]702; GFX900-NEXT: v_max_f64 v[4:5], v[2:3], v[6:7]703; GFX900-NEXT: v_cmp_u_f64_e64 s[4:5], v[2:3], v[6:7]704; GFX900-NEXT: v_mov_b32_e32 v3, 0x7ff80000705; GFX900-NEXT: v_cndmask_b32_e64 v0, v8, 0, vcc706; GFX900-NEXT: v_cndmask_b32_e32 v1, v9, v3, vcc707; GFX900-NEXT: v_cndmask_b32_e64 v2, v4, 0, s[4:5]708; GFX900-NEXT: v_cndmask_b32_e64 v3, v5, v3, s[4:5]709; GFX900-NEXT: s_setpc_b64 s[30:31]710;711; GFX950-LABEL: v_maximum_v2f64__nsz:712; GFX950: ; %bb.0:713; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)714; GFX950-NEXT: v_max_f64 v[8:9], v[0:1], v[4:5]715; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]716; GFX950-NEXT: v_max_f64 v[4:5], v[2:3], v[6:7]717; GFX950-NEXT: s_nop 0718; GFX950-NEXT: v_cndmask_b32_e64 v0, v8, 0, vcc719; GFX950-NEXT: v_mov_b32_e32 v8, 0x7ff80000720; GFX950-NEXT: v_cndmask_b32_e32 v1, v9, v8, vcc721; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[2:3], v[6:7]722; GFX950-NEXT: s_nop 1723; GFX950-NEXT: v_cndmask_b32_e64 v2, v4, 0, vcc724; GFX950-NEXT: v_cndmask_b32_e32 v3, v5, v8, vcc725; GFX950-NEXT: s_setpc_b64 s[30:31]726;727; GFX10-LABEL: v_maximum_v2f64__nsz:728; GFX10: ; %bb.0:729; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)730; GFX10-NEXT: v_max_f64 v[8:9], v[0:1], v[4:5]731; GFX10-NEXT: v_cmp_u_f64_e32 vcc_lo, v[0:1], v[4:5]732; GFX10-NEXT: v_max_f64 v[4:5], v[2:3], v[6:7]733; GFX10-NEXT: v_cmp_u_f64_e64 s4, v[2:3], v[6:7]734; GFX10-NEXT: v_cndmask_b32_e64 v0, v8, 0, vcc_lo735; GFX10-NEXT: v_cndmask_b32_e64 v1, v9, 0x7ff80000, vcc_lo736; GFX10-NEXT: v_cndmask_b32_e64 v2, v4, 0, s4737; GFX10-NEXT: v_cndmask_b32_e64 v3, v5, 0x7ff80000, s4738; GFX10-NEXT: s_setpc_b64 s[30:31]739;740; GFX11-LABEL: v_maximum_v2f64__nsz:741; GFX11: ; %bb.0:742; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)743; GFX11-NEXT: v_max_f64 v[8:9], v[0:1], v[4:5]744; GFX11-NEXT: v_cmp_u_f64_e32 vcc_lo, v[0:1], v[4:5]745; GFX11-NEXT: v_max_f64 v[4:5], v[2:3], v[6:7]746; GFX11-NEXT: v_cmp_u_f64_e64 s0, v[2:3], v[6:7]747; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_4) | instskip(SKIP_1) | instid1(VALU_DEP_3)748; GFX11-NEXT: v_cndmask_b32_e64 v0, v8, 0, vcc_lo749; GFX11-NEXT: v_cndmask_b32_e64 v1, v9, 0x7ff80000, vcc_lo750; GFX11-NEXT: v_cndmask_b32_e64 v2, v4, 0, s0751; GFX11-NEXT: v_cndmask_b32_e64 v3, v5, 0x7ff80000, s0752; GFX11-NEXT: s_setpc_b64 s[30:31]753;754; GFX12-LABEL: v_maximum_v2f64__nsz:755; GFX12: ; %bb.0:756; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0757; GFX12-NEXT: s_wait_expcnt 0x0758; GFX12-NEXT: s_wait_samplecnt 0x0759; GFX12-NEXT: s_wait_bvhcnt 0x0760; GFX12-NEXT: s_wait_kmcnt 0x0761; GFX12-NEXT: v_maximum_f64 v[0:1], v[0:1], v[4:5]762; GFX12-NEXT: v_maximum_f64 v[2:3], v[2:3], v[6:7]763; GFX12-NEXT: s_setpc_b64 s[30:31]764 %op = call nsz <2 x double> @llvm.maximum.v2f64(<2 x double> %src0, <2 x double> %src1)765 ret <2 x double> %op766}767 768define <2 x double> @v_maximum_v2f64__nnan_nsz(<2 x double> %src0, <2 x double> %src1) {769; GFX7-LABEL: v_maximum_v2f64__nnan_nsz:770; GFX7: ; %bb.0:771; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)772; GFX7-NEXT: v_max_f64 v[0:1], v[0:1], v[4:5]773; GFX7-NEXT: v_max_f64 v[2:3], v[2:3], v[6:7]774; GFX7-NEXT: s_setpc_b64 s[30:31]775;776; GFX8-LABEL: v_maximum_v2f64__nnan_nsz:777; GFX8: ; %bb.0:778; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)779; GFX8-NEXT: v_max_f64 v[0:1], v[0:1], v[4:5]780; GFX8-NEXT: v_max_f64 v[2:3], v[2:3], v[6:7]781; GFX8-NEXT: s_setpc_b64 s[30:31]782;783; GFX9-LABEL: v_maximum_v2f64__nnan_nsz:784; GFX9: ; %bb.0:785; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)786; GFX9-NEXT: v_max_f64 v[0:1], v[0:1], v[4:5]787; GFX9-NEXT: v_max_f64 v[2:3], v[2:3], v[6:7]788; GFX9-NEXT: s_setpc_b64 s[30:31]789;790; GFX10-LABEL: v_maximum_v2f64__nnan_nsz:791; GFX10: ; %bb.0:792; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)793; GFX10-NEXT: v_max_f64 v[0:1], v[0:1], v[4:5]794; GFX10-NEXT: v_max_f64 v[2:3], v[2:3], v[6:7]795; GFX10-NEXT: s_setpc_b64 s[30:31]796;797; GFX11-LABEL: v_maximum_v2f64__nnan_nsz:798; GFX11: ; %bb.0:799; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)800; GFX11-NEXT: v_max_f64 v[0:1], v[0:1], v[4:5]801; GFX11-NEXT: v_max_f64 v[2:3], v[2:3], v[6:7]802; GFX11-NEXT: s_setpc_b64 s[30:31]803;804; GFX12-LABEL: v_maximum_v2f64__nnan_nsz:805; GFX12: ; %bb.0:806; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0807; GFX12-NEXT: s_wait_expcnt 0x0808; GFX12-NEXT: s_wait_samplecnt 0x0809; GFX12-NEXT: s_wait_bvhcnt 0x0810; GFX12-NEXT: s_wait_kmcnt 0x0811; GFX12-NEXT: v_maximum_f64 v[0:1], v[0:1], v[4:5]812; GFX12-NEXT: v_maximum_f64 v[2:3], v[2:3], v[6:7]813; GFX12-NEXT: s_setpc_b64 s[30:31]814 %op = call nnan nsz <2 x double> @llvm.maximum.v2f64(<2 x double> %src0, <2 x double> %src1)815 ret <2 x double> %op816}817 818define void @s_maximum_v2f64(<2 x double> inreg %src0, <2 x double> inreg %src1) {819; GFX7-LABEL: s_maximum_v2f64:820; GFX7: ; %bb.0:821; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)822; GFX7-NEXT: v_mov_b32_e32 v0, s22823; GFX7-NEXT: v_mov_b32_e32 v1, s23824; GFX7-NEXT: v_max_f64 v[2:3], s[18:19], v[0:1]825; GFX7-NEXT: v_cmp_u_f64_e32 vcc, s[18:19], v[0:1]826; GFX7-NEXT: v_mov_b32_e32 v0, s20827; GFX7-NEXT: v_mov_b32_e32 v1, s21828; GFX7-NEXT: v_max_f64 v[4:5], s[16:17], v[0:1]829; GFX7-NEXT: v_cmp_u_f64_e64 s[4:5], s[16:17], v[0:1]830; GFX7-NEXT: v_mov_b32_e32 v6, 0x7ff80000831; GFX7-NEXT: v_cndmask_b32_e32 v3, v3, v6, vcc832; GFX7-NEXT: v_cndmask_b32_e64 v2, v2, 0, vcc833; GFX7-NEXT: v_cndmask_b32_e64 v1, v5, v6, s[4:5]834; GFX7-NEXT: v_cndmask_b32_e64 v0, v4, 0, s[4:5]835; GFX7-NEXT: ;;#ASMSTART836; GFX7-NEXT: ; use v[0:3]837; GFX7-NEXT: ;;#ASMEND838; GFX7-NEXT: s_setpc_b64 s[30:31]839;840; GFX8-LABEL: s_maximum_v2f64:841; GFX8: ; %bb.0:842; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)843; GFX8-NEXT: v_mov_b32_e32 v0, s22844; GFX8-NEXT: v_mov_b32_e32 v1, s23845; GFX8-NEXT: v_max_f64 v[2:3], s[18:19], v[0:1]846; GFX8-NEXT: v_cmp_u_f64_e32 vcc, s[18:19], v[0:1]847; GFX8-NEXT: v_mov_b32_e32 v0, s20848; GFX8-NEXT: v_mov_b32_e32 v1, s21849; GFX8-NEXT: v_max_f64 v[4:5], s[16:17], v[0:1]850; GFX8-NEXT: v_cmp_u_f64_e64 s[4:5], s[16:17], v[0:1]851; GFX8-NEXT: v_mov_b32_e32 v6, 0x7ff80000852; GFX8-NEXT: v_cndmask_b32_e32 v3, v3, v6, vcc853; GFX8-NEXT: v_cndmask_b32_e64 v2, v2, 0, vcc854; GFX8-NEXT: v_cndmask_b32_e64 v1, v5, v6, s[4:5]855; GFX8-NEXT: v_cndmask_b32_e64 v0, v4, 0, s[4:5]856; GFX8-NEXT: ;;#ASMSTART857; GFX8-NEXT: ; use v[0:3]858; GFX8-NEXT: ;;#ASMEND859; GFX8-NEXT: s_setpc_b64 s[30:31]860;861; GFX900-LABEL: s_maximum_v2f64:862; GFX900: ; %bb.0:863; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)864; GFX900-NEXT: v_mov_b32_e32 v0, s22865; GFX900-NEXT: v_mov_b32_e32 v1, s23866; GFX900-NEXT: v_max_f64 v[2:3], s[18:19], v[0:1]867; GFX900-NEXT: v_cmp_u_f64_e32 vcc, s[18:19], v[0:1]868; GFX900-NEXT: v_mov_b32_e32 v0, s20869; GFX900-NEXT: v_mov_b32_e32 v1, s21870; GFX900-NEXT: v_max_f64 v[4:5], s[16:17], v[0:1]871; GFX900-NEXT: v_cmp_u_f64_e64 s[4:5], s[16:17], v[0:1]872; GFX900-NEXT: v_mov_b32_e32 v6, 0x7ff80000873; GFX900-NEXT: v_cndmask_b32_e32 v3, v3, v6, vcc874; GFX900-NEXT: v_cndmask_b32_e64 v2, v2, 0, vcc875; GFX900-NEXT: v_cndmask_b32_e64 v1, v5, v6, s[4:5]876; GFX900-NEXT: v_cndmask_b32_e64 v0, v4, 0, s[4:5]877; GFX900-NEXT: ;;#ASMSTART878; GFX900-NEXT: ; use v[0:3]879; GFX900-NEXT: ;;#ASMEND880; GFX900-NEXT: s_setpc_b64 s[30:31]881;882; GFX950-LABEL: s_maximum_v2f64:883; GFX950: ; %bb.0:884; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)885; GFX950-NEXT: v_mov_b64_e32 v[0:1], s[18:19]886; GFX950-NEXT: v_max_f64 v[2:3], s[2:3], v[0:1]887; GFX950-NEXT: v_mov_b32_e32 v6, 0x7ff80000888; GFX950-NEXT: v_cmp_u_f64_e32 vcc, s[2:3], v[0:1]889; GFX950-NEXT: v_mov_b64_e32 v[0:1], s[16:17]890; GFX950-NEXT: v_max_f64 v[4:5], s[0:1], v[0:1]891; GFX950-NEXT: v_cndmask_b32_e32 v3, v3, v6, vcc892; GFX950-NEXT: v_cndmask_b32_e64 v2, v2, 0, vcc893; GFX950-NEXT: v_cmp_u_f64_e32 vcc, s[0:1], v[0:1]894; GFX950-NEXT: s_nop 1895; GFX950-NEXT: v_cndmask_b32_e32 v1, v5, v6, vcc896; GFX950-NEXT: v_cndmask_b32_e64 v0, v4, 0, vcc897; GFX950-NEXT: ;;#ASMSTART898; GFX950-NEXT: ; use v[0:3]899; GFX950-NEXT: ;;#ASMEND900; GFX950-NEXT: s_setpc_b64 s[30:31]901;902; GFX10-LABEL: s_maximum_v2f64:903; GFX10: ; %bb.0:904; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)905; GFX10-NEXT: v_max_f64 v[0:1], s[18:19], s[22:23]906; GFX10-NEXT: v_cmp_u_f64_e64 s4, s[18:19], s[22:23]907; GFX10-NEXT: v_max_f64 v[4:5], s[16:17], s[20:21]908; GFX10-NEXT: v_cmp_u_f64_e64 s5, s[16:17], s[20:21]909; GFX10-NEXT: v_cndmask_b32_e64 v3, v1, 0x7ff80000, s4910; GFX10-NEXT: v_cndmask_b32_e64 v2, v0, 0, s4911; GFX10-NEXT: v_cndmask_b32_e64 v1, v5, 0x7ff80000, s5912; GFX10-NEXT: v_cndmask_b32_e64 v0, v4, 0, s5913; GFX10-NEXT: ;;#ASMSTART914; GFX10-NEXT: ; use v[0:3]915; GFX10-NEXT: ;;#ASMEND916; GFX10-NEXT: s_setpc_b64 s[30:31]917;918; GFX11-LABEL: s_maximum_v2f64:919; GFX11: ; %bb.0:920; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)921; GFX11-NEXT: v_max_f64 v[0:1], s[2:3], s[18:19]922; GFX11-NEXT: v_cmp_u_f64_e64 s2, s[2:3], s[18:19]923; GFX11-NEXT: v_max_f64 v[4:5], s[0:1], s[16:17]924; GFX11-NEXT: v_cmp_u_f64_e64 s0, s[0:1], s[16:17]925; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(SKIP_1) | instid1(VALU_DEP_3)926; GFX11-NEXT: v_cndmask_b32_e64 v3, v1, 0x7ff80000, s2927; GFX11-NEXT: v_cndmask_b32_e64 v2, v0, 0, s2928; GFX11-NEXT: v_cndmask_b32_e64 v1, v5, 0x7ff80000, s0929; GFX11-NEXT: v_cndmask_b32_e64 v0, v4, 0, s0930; GFX11-NEXT: ;;#ASMSTART931; GFX11-NEXT: ; use v[0:3]932; GFX11-NEXT: ;;#ASMEND933; GFX11-NEXT: s_setpc_b64 s[30:31]934;935; GFX12-LABEL: s_maximum_v2f64:936; GFX12: ; %bb.0:937; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0938; GFX12-NEXT: s_wait_expcnt 0x0939; GFX12-NEXT: s_wait_samplecnt 0x0940; GFX12-NEXT: s_wait_bvhcnt 0x0941; GFX12-NEXT: s_wait_kmcnt 0x0942; GFX12-NEXT: v_maximum_f64 v[2:3], s[2:3], s[18:19]943; GFX12-NEXT: v_maximum_f64 v[0:1], s[0:1], s[16:17]944; GFX12-NEXT: ;;#ASMSTART945; GFX12-NEXT: ; use v[0:3]946; GFX12-NEXT: ;;#ASMEND947; GFX12-NEXT: s_setpc_b64 s[30:31]948 %op = call <2 x double> @llvm.maximum.v2f64(<2 x double> %src0, <2 x double> %src1)949 call void asm sideeffect "; use $0", "s"(<2 x double> %op)950 ret void951}952 953define <3 x double> @v_maximum_v3f64(<3 x double> %src0, <3 x double> %src1) {954; GFX7-LABEL: v_maximum_v3f64:955; GFX7: ; %bb.0:956; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)957; GFX7-NEXT: v_max_f64 v[12:13], v[0:1], v[6:7]958; GFX7-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[6:7]959; GFX7-NEXT: v_max_f64 v[6:7], v[2:3], v[8:9]960; GFX7-NEXT: v_cmp_u_f64_e64 s[4:5], v[2:3], v[8:9]961; GFX7-NEXT: v_max_f64 v[8:9], v[4:5], v[10:11]962; GFX7-NEXT: v_cmp_u_f64_e64 s[6:7], v[4:5], v[10:11]963; GFX7-NEXT: v_mov_b32_e32 v5, 0x7ff80000964; GFX7-NEXT: v_cndmask_b32_e64 v0, v12, 0, vcc965; GFX7-NEXT: v_cndmask_b32_e32 v1, v13, v5, vcc966; GFX7-NEXT: v_cndmask_b32_e64 v2, v6, 0, s[4:5]967; GFX7-NEXT: v_cndmask_b32_e64 v3, v7, v5, s[4:5]968; GFX7-NEXT: v_cndmask_b32_e64 v4, v8, 0, s[6:7]969; GFX7-NEXT: v_cndmask_b32_e64 v5, v9, v5, s[6:7]970; GFX7-NEXT: s_setpc_b64 s[30:31]971;972; GFX8-LABEL: v_maximum_v3f64:973; GFX8: ; %bb.0:974; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)975; GFX8-NEXT: v_max_f64 v[12:13], v[0:1], v[6:7]976; GFX8-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[6:7]977; GFX8-NEXT: v_max_f64 v[6:7], v[2:3], v[8:9]978; GFX8-NEXT: v_cmp_u_f64_e64 s[4:5], v[2:3], v[8:9]979; GFX8-NEXT: v_max_f64 v[8:9], v[4:5], v[10:11]980; GFX8-NEXT: v_cmp_u_f64_e64 s[6:7], v[4:5], v[10:11]981; GFX8-NEXT: v_mov_b32_e32 v5, 0x7ff80000982; GFX8-NEXT: v_cndmask_b32_e64 v0, v12, 0, vcc983; GFX8-NEXT: v_cndmask_b32_e32 v1, v13, v5, vcc984; GFX8-NEXT: v_cndmask_b32_e64 v2, v6, 0, s[4:5]985; GFX8-NEXT: v_cndmask_b32_e64 v3, v7, v5, s[4:5]986; GFX8-NEXT: v_cndmask_b32_e64 v4, v8, 0, s[6:7]987; GFX8-NEXT: v_cndmask_b32_e64 v5, v9, v5, s[6:7]988; GFX8-NEXT: s_setpc_b64 s[30:31]989;990; GFX900-LABEL: v_maximum_v3f64:991; GFX900: ; %bb.0:992; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)993; GFX900-NEXT: v_max_f64 v[12:13], v[0:1], v[6:7]994; GFX900-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[6:7]995; GFX900-NEXT: v_max_f64 v[6:7], v[2:3], v[8:9]996; GFX900-NEXT: v_cmp_u_f64_e64 s[4:5], v[2:3], v[8:9]997; GFX900-NEXT: v_max_f64 v[8:9], v[4:5], v[10:11]998; GFX900-NEXT: v_cmp_u_f64_e64 s[6:7], v[4:5], v[10:11]999; GFX900-NEXT: v_mov_b32_e32 v5, 0x7ff800001000; GFX900-NEXT: v_cndmask_b32_e64 v0, v12, 0, vcc1001; GFX900-NEXT: v_cndmask_b32_e32 v1, v13, v5, vcc1002; GFX900-NEXT: v_cndmask_b32_e64 v2, v6, 0, s[4:5]1003; GFX900-NEXT: v_cndmask_b32_e64 v3, v7, v5, s[4:5]1004; GFX900-NEXT: v_cndmask_b32_e64 v4, v8, 0, s[6:7]1005; GFX900-NEXT: v_cndmask_b32_e64 v5, v9, v5, s[6:7]1006; GFX900-NEXT: s_setpc_b64 s[30:31]1007;1008; GFX950-LABEL: v_maximum_v3f64:1009; GFX950: ; %bb.0:1010; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1011; GFX950-NEXT: v_max_f64 v[12:13], v[0:1], v[6:7]1012; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[6:7]1013; GFX950-NEXT: v_max_f64 v[6:7], v[2:3], v[8:9]1014; GFX950-NEXT: s_nop 01015; GFX950-NEXT: v_cndmask_b32_e64 v0, v12, 0, vcc1016; GFX950-NEXT: v_mov_b32_e32 v12, 0x7ff800001017; GFX950-NEXT: v_cndmask_b32_e32 v1, v13, v12, vcc1018; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[2:3], v[8:9]1019; GFX950-NEXT: s_nop 11020; GFX950-NEXT: v_cndmask_b32_e64 v2, v6, 0, vcc1021; GFX950-NEXT: v_cndmask_b32_e32 v3, v7, v12, vcc1022; GFX950-NEXT: v_max_f64 v[6:7], v[4:5], v[10:11]1023; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[4:5], v[10:11]1024; GFX950-NEXT: s_nop 11025; GFX950-NEXT: v_cndmask_b32_e64 v4, v6, 0, vcc1026; GFX950-NEXT: v_cndmask_b32_e32 v5, v7, v12, vcc1027; GFX950-NEXT: s_setpc_b64 s[30:31]1028;1029; GFX10-LABEL: v_maximum_v3f64:1030; GFX10: ; %bb.0:1031; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1032; GFX10-NEXT: v_max_f64 v[12:13], v[0:1], v[6:7]1033; GFX10-NEXT: v_cmp_u_f64_e32 vcc_lo, v[0:1], v[6:7]1034; GFX10-NEXT: v_max_f64 v[6:7], v[2:3], v[8:9]1035; GFX10-NEXT: v_cmp_u_f64_e64 s4, v[2:3], v[8:9]1036; GFX10-NEXT: v_max_f64 v[8:9], v[4:5], v[10:11]1037; GFX10-NEXT: v_cmp_u_f64_e64 s5, v[4:5], v[10:11]1038; GFX10-NEXT: v_cndmask_b32_e64 v0, v12, 0, vcc_lo1039; GFX10-NEXT: v_cndmask_b32_e64 v1, v13, 0x7ff80000, vcc_lo1040; GFX10-NEXT: v_cndmask_b32_e64 v2, v6, 0, s41041; GFX10-NEXT: v_cndmask_b32_e64 v3, v7, 0x7ff80000, s41042; GFX10-NEXT: v_cndmask_b32_e64 v4, v8, 0, s51043; GFX10-NEXT: v_cndmask_b32_e64 v5, v9, 0x7ff80000, s51044; GFX10-NEXT: s_setpc_b64 s[30:31]1045;1046; GFX11-LABEL: v_maximum_v3f64:1047; GFX11: ; %bb.0:1048; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1049; GFX11-NEXT: v_max_f64 v[12:13], v[0:1], v[6:7]1050; GFX11-NEXT: v_cmp_u_f64_e32 vcc_lo, v[0:1], v[6:7]1051; GFX11-NEXT: v_max_f64 v[6:7], v[2:3], v[8:9]1052; GFX11-NEXT: v_cmp_u_f64_e64 s0, v[2:3], v[8:9]1053; GFX11-NEXT: v_max_f64 v[8:9], v[4:5], v[10:11]1054; GFX11-NEXT: v_cmp_u_f64_e64 s1, v[4:5], v[10:11]1055; GFX11-NEXT: v_cndmask_b32_e64 v0, v12, 0, vcc_lo1056; GFX11-NEXT: v_cndmask_b32_e64 v1, v13, 0x7ff80000, vcc_lo1057; GFX11-NEXT: v_cndmask_b32_e64 v2, v6, 0, s01058; GFX11-NEXT: v_cndmask_b32_e64 v3, v7, 0x7ff80000, s01059; GFX11-NEXT: v_cndmask_b32_e64 v4, v8, 0, s11060; GFX11-NEXT: v_cndmask_b32_e64 v5, v9, 0x7ff80000, s11061; GFX11-NEXT: s_setpc_b64 s[30:31]1062;1063; GFX12-LABEL: v_maximum_v3f64:1064; GFX12: ; %bb.0:1065; GFX12-NEXT: s_wait_loadcnt_dscnt 0x01066; GFX12-NEXT: s_wait_expcnt 0x01067; GFX12-NEXT: s_wait_samplecnt 0x01068; GFX12-NEXT: s_wait_bvhcnt 0x01069; GFX12-NEXT: s_wait_kmcnt 0x01070; GFX12-NEXT: v_maximum_f64 v[0:1], v[0:1], v[6:7]1071; GFX12-NEXT: v_maximum_f64 v[2:3], v[2:3], v[8:9]1072; GFX12-NEXT: v_maximum_f64 v[4:5], v[4:5], v[10:11]1073; GFX12-NEXT: s_setpc_b64 s[30:31]1074 %op = call <3 x double> @llvm.maximum.v3f64(<3 x double> %src0, <3 x double> %src1)1075 ret <3 x double> %op1076}1077 1078define <3 x double> @v_maximum_v3f64__nnan(<3 x double> %src0, <3 x double> %src1) {1079; GFX7-LABEL: v_maximum_v3f64__nnan:1080; GFX7: ; %bb.0:1081; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1082; GFX7-NEXT: v_max_f64 v[0:1], v[0:1], v[6:7]1083; GFX7-NEXT: v_max_f64 v[2:3], v[2:3], v[8:9]1084; GFX7-NEXT: v_max_f64 v[4:5], v[4:5], v[10:11]1085; GFX7-NEXT: s_setpc_b64 s[30:31]1086;1087; GFX8-LABEL: v_maximum_v3f64__nnan:1088; GFX8: ; %bb.0:1089; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1090; GFX8-NEXT: v_max_f64 v[0:1], v[0:1], v[6:7]1091; GFX8-NEXT: v_max_f64 v[2:3], v[2:3], v[8:9]1092; GFX8-NEXT: v_max_f64 v[4:5], v[4:5], v[10:11]1093; GFX8-NEXT: s_setpc_b64 s[30:31]1094;1095; GFX9-LABEL: v_maximum_v3f64__nnan:1096; GFX9: ; %bb.0:1097; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1098; GFX9-NEXT: v_max_f64 v[0:1], v[0:1], v[6:7]1099; GFX9-NEXT: v_max_f64 v[2:3], v[2:3], v[8:9]1100; GFX9-NEXT: v_max_f64 v[4:5], v[4:5], v[10:11]1101; GFX9-NEXT: s_setpc_b64 s[30:31]1102;1103; GFX10-LABEL: v_maximum_v3f64__nnan:1104; GFX10: ; %bb.0:1105; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1106; GFX10-NEXT: v_max_f64 v[0:1], v[0:1], v[6:7]1107; GFX10-NEXT: v_max_f64 v[2:3], v[2:3], v[8:9]1108; GFX10-NEXT: v_max_f64 v[4:5], v[4:5], v[10:11]1109; GFX10-NEXT: s_setpc_b64 s[30:31]1110;1111; GFX11-LABEL: v_maximum_v3f64__nnan:1112; GFX11: ; %bb.0:1113; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1114; GFX11-NEXT: v_max_f64 v[0:1], v[0:1], v[6:7]1115; GFX11-NEXT: v_max_f64 v[2:3], v[2:3], v[8:9]1116; GFX11-NEXT: v_max_f64 v[4:5], v[4:5], v[10:11]1117; GFX11-NEXT: s_setpc_b64 s[30:31]1118;1119; GFX12-LABEL: v_maximum_v3f64__nnan:1120; GFX12: ; %bb.0:1121; GFX12-NEXT: s_wait_loadcnt_dscnt 0x01122; GFX12-NEXT: s_wait_expcnt 0x01123; GFX12-NEXT: s_wait_samplecnt 0x01124; GFX12-NEXT: s_wait_bvhcnt 0x01125; GFX12-NEXT: s_wait_kmcnt 0x01126; GFX12-NEXT: v_maximum_f64 v[0:1], v[0:1], v[6:7]1127; GFX12-NEXT: v_maximum_f64 v[2:3], v[2:3], v[8:9]1128; GFX12-NEXT: v_maximum_f64 v[4:5], v[4:5], v[10:11]1129; GFX12-NEXT: s_setpc_b64 s[30:31]1130 %op = call nnan <3 x double> @llvm.maximum.v3f64(<3 x double> %src0, <3 x double> %src1)1131 ret <3 x double> %op1132}1133 1134define <3 x double> @v_maximum_v3f64__nsz(<3 x double> %src0, <3 x double> %src1) {1135; GFX7-LABEL: v_maximum_v3f64__nsz:1136; GFX7: ; %bb.0:1137; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1138; GFX7-NEXT: v_max_f64 v[12:13], v[0:1], v[6:7]1139; GFX7-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[6:7]1140; GFX7-NEXT: v_max_f64 v[6:7], v[2:3], v[8:9]1141; GFX7-NEXT: v_cmp_u_f64_e64 s[4:5], v[2:3], v[8:9]1142; GFX7-NEXT: v_max_f64 v[8:9], v[4:5], v[10:11]1143; GFX7-NEXT: v_cmp_u_f64_e64 s[6:7], v[4:5], v[10:11]1144; GFX7-NEXT: v_mov_b32_e32 v5, 0x7ff800001145; GFX7-NEXT: v_cndmask_b32_e64 v0, v12, 0, vcc1146; GFX7-NEXT: v_cndmask_b32_e32 v1, v13, v5, vcc1147; GFX7-NEXT: v_cndmask_b32_e64 v2, v6, 0, s[4:5]1148; GFX7-NEXT: v_cndmask_b32_e64 v3, v7, v5, s[4:5]1149; GFX7-NEXT: v_cndmask_b32_e64 v4, v8, 0, s[6:7]1150; GFX7-NEXT: v_cndmask_b32_e64 v5, v9, v5, s[6:7]1151; GFX7-NEXT: s_setpc_b64 s[30:31]1152;1153; GFX8-LABEL: v_maximum_v3f64__nsz:1154; GFX8: ; %bb.0:1155; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1156; GFX8-NEXT: v_max_f64 v[12:13], v[0:1], v[6:7]1157; GFX8-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[6:7]1158; GFX8-NEXT: v_max_f64 v[6:7], v[2:3], v[8:9]1159; GFX8-NEXT: v_cmp_u_f64_e64 s[4:5], v[2:3], v[8:9]1160; GFX8-NEXT: v_max_f64 v[8:9], v[4:5], v[10:11]1161; GFX8-NEXT: v_cmp_u_f64_e64 s[6:7], v[4:5], v[10:11]1162; GFX8-NEXT: v_mov_b32_e32 v5, 0x7ff800001163; GFX8-NEXT: v_cndmask_b32_e64 v0, v12, 0, vcc1164; GFX8-NEXT: v_cndmask_b32_e32 v1, v13, v5, vcc1165; GFX8-NEXT: v_cndmask_b32_e64 v2, v6, 0, s[4:5]1166; GFX8-NEXT: v_cndmask_b32_e64 v3, v7, v5, s[4:5]1167; GFX8-NEXT: v_cndmask_b32_e64 v4, v8, 0, s[6:7]1168; GFX8-NEXT: v_cndmask_b32_e64 v5, v9, v5, s[6:7]1169; GFX8-NEXT: s_setpc_b64 s[30:31]1170;1171; GFX900-LABEL: v_maximum_v3f64__nsz:1172; GFX900: ; %bb.0:1173; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1174; GFX900-NEXT: v_max_f64 v[12:13], v[0:1], v[6:7]1175; GFX900-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[6:7]1176; GFX900-NEXT: v_max_f64 v[6:7], v[2:3], v[8:9]1177; GFX900-NEXT: v_cmp_u_f64_e64 s[4:5], v[2:3], v[8:9]1178; GFX900-NEXT: v_max_f64 v[8:9], v[4:5], v[10:11]1179; GFX900-NEXT: v_cmp_u_f64_e64 s[6:7], v[4:5], v[10:11]1180; GFX900-NEXT: v_mov_b32_e32 v5, 0x7ff800001181; GFX900-NEXT: v_cndmask_b32_e64 v0, v12, 0, vcc1182; GFX900-NEXT: v_cndmask_b32_e32 v1, v13, v5, vcc1183; GFX900-NEXT: v_cndmask_b32_e64 v2, v6, 0, s[4:5]1184; GFX900-NEXT: v_cndmask_b32_e64 v3, v7, v5, s[4:5]1185; GFX900-NEXT: v_cndmask_b32_e64 v4, v8, 0, s[6:7]1186; GFX900-NEXT: v_cndmask_b32_e64 v5, v9, v5, s[6:7]1187; GFX900-NEXT: s_setpc_b64 s[30:31]1188;1189; GFX950-LABEL: v_maximum_v3f64__nsz:1190; GFX950: ; %bb.0:1191; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1192; GFX950-NEXT: v_max_f64 v[12:13], v[0:1], v[6:7]1193; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[6:7]1194; GFX950-NEXT: v_max_f64 v[6:7], v[2:3], v[8:9]1195; GFX950-NEXT: s_nop 01196; GFX950-NEXT: v_cndmask_b32_e64 v0, v12, 0, vcc1197; GFX950-NEXT: v_mov_b32_e32 v12, 0x7ff800001198; GFX950-NEXT: v_cndmask_b32_e32 v1, v13, v12, vcc1199; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[2:3], v[8:9]1200; GFX950-NEXT: s_nop 11201; GFX950-NEXT: v_cndmask_b32_e64 v2, v6, 0, vcc1202; GFX950-NEXT: v_cndmask_b32_e32 v3, v7, v12, vcc1203; GFX950-NEXT: v_max_f64 v[6:7], v[4:5], v[10:11]1204; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[4:5], v[10:11]1205; GFX950-NEXT: s_nop 11206; GFX950-NEXT: v_cndmask_b32_e64 v4, v6, 0, vcc1207; GFX950-NEXT: v_cndmask_b32_e32 v5, v7, v12, vcc1208; GFX950-NEXT: s_setpc_b64 s[30:31]1209;1210; GFX10-LABEL: v_maximum_v3f64__nsz:1211; GFX10: ; %bb.0:1212; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1213; GFX10-NEXT: v_max_f64 v[12:13], v[0:1], v[6:7]1214; GFX10-NEXT: v_cmp_u_f64_e32 vcc_lo, v[0:1], v[6:7]1215; GFX10-NEXT: v_max_f64 v[6:7], v[2:3], v[8:9]1216; GFX10-NEXT: v_cmp_u_f64_e64 s4, v[2:3], v[8:9]1217; GFX10-NEXT: v_max_f64 v[8:9], v[4:5], v[10:11]1218; GFX10-NEXT: v_cmp_u_f64_e64 s5, v[4:5], v[10:11]1219; GFX10-NEXT: v_cndmask_b32_e64 v0, v12, 0, vcc_lo1220; GFX10-NEXT: v_cndmask_b32_e64 v1, v13, 0x7ff80000, vcc_lo1221; GFX10-NEXT: v_cndmask_b32_e64 v2, v6, 0, s41222; GFX10-NEXT: v_cndmask_b32_e64 v3, v7, 0x7ff80000, s41223; GFX10-NEXT: v_cndmask_b32_e64 v4, v8, 0, s51224; GFX10-NEXT: v_cndmask_b32_e64 v5, v9, 0x7ff80000, s51225; GFX10-NEXT: s_setpc_b64 s[30:31]1226;1227; GFX11-LABEL: v_maximum_v3f64__nsz:1228; GFX11: ; %bb.0:1229; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1230; GFX11-NEXT: v_max_f64 v[12:13], v[0:1], v[6:7]1231; GFX11-NEXT: v_cmp_u_f64_e32 vcc_lo, v[0:1], v[6:7]1232; GFX11-NEXT: v_max_f64 v[6:7], v[2:3], v[8:9]1233; GFX11-NEXT: v_cmp_u_f64_e64 s0, v[2:3], v[8:9]1234; GFX11-NEXT: v_max_f64 v[8:9], v[4:5], v[10:11]1235; GFX11-NEXT: v_cmp_u_f64_e64 s1, v[4:5], v[10:11]1236; GFX11-NEXT: v_cndmask_b32_e64 v0, v12, 0, vcc_lo1237; GFX11-NEXT: v_cndmask_b32_e64 v1, v13, 0x7ff80000, vcc_lo1238; GFX11-NEXT: v_cndmask_b32_e64 v2, v6, 0, s01239; GFX11-NEXT: v_cndmask_b32_e64 v3, v7, 0x7ff80000, s01240; GFX11-NEXT: v_cndmask_b32_e64 v4, v8, 0, s11241; GFX11-NEXT: v_cndmask_b32_e64 v5, v9, 0x7ff80000, s11242; GFX11-NEXT: s_setpc_b64 s[30:31]1243;1244; GFX12-LABEL: v_maximum_v3f64__nsz:1245; GFX12: ; %bb.0:1246; GFX12-NEXT: s_wait_loadcnt_dscnt 0x01247; GFX12-NEXT: s_wait_expcnt 0x01248; GFX12-NEXT: s_wait_samplecnt 0x01249; GFX12-NEXT: s_wait_bvhcnt 0x01250; GFX12-NEXT: s_wait_kmcnt 0x01251; GFX12-NEXT: v_maximum_f64 v[0:1], v[0:1], v[6:7]1252; GFX12-NEXT: v_maximum_f64 v[2:3], v[2:3], v[8:9]1253; GFX12-NEXT: v_maximum_f64 v[4:5], v[4:5], v[10:11]1254; GFX12-NEXT: s_setpc_b64 s[30:31]1255 %op = call nsz <3 x double> @llvm.maximum.v3f64(<3 x double> %src0, <3 x double> %src1)1256 ret <3 x double> %op1257}1258 1259define <3 x double> @v_maximum_v3f64__nnan_nsz(<3 x double> %src0, <3 x double> %src1) {1260; GFX7-LABEL: v_maximum_v3f64__nnan_nsz:1261; GFX7: ; %bb.0:1262; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1263; GFX7-NEXT: v_max_f64 v[0:1], v[0:1], v[6:7]1264; GFX7-NEXT: v_max_f64 v[2:3], v[2:3], v[8:9]1265; GFX7-NEXT: v_max_f64 v[4:5], v[4:5], v[10:11]1266; GFX7-NEXT: s_setpc_b64 s[30:31]1267;1268; GFX8-LABEL: v_maximum_v3f64__nnan_nsz:1269; GFX8: ; %bb.0:1270; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1271; GFX8-NEXT: v_max_f64 v[0:1], v[0:1], v[6:7]1272; GFX8-NEXT: v_max_f64 v[2:3], v[2:3], v[8:9]1273; GFX8-NEXT: v_max_f64 v[4:5], v[4:5], v[10:11]1274; GFX8-NEXT: s_setpc_b64 s[30:31]1275;1276; GFX9-LABEL: v_maximum_v3f64__nnan_nsz:1277; GFX9: ; %bb.0:1278; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1279; GFX9-NEXT: v_max_f64 v[0:1], v[0:1], v[6:7]1280; GFX9-NEXT: v_max_f64 v[2:3], v[2:3], v[8:9]1281; GFX9-NEXT: v_max_f64 v[4:5], v[4:5], v[10:11]1282; GFX9-NEXT: s_setpc_b64 s[30:31]1283;1284; GFX10-LABEL: v_maximum_v3f64__nnan_nsz:1285; GFX10: ; %bb.0:1286; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1287; GFX10-NEXT: v_max_f64 v[0:1], v[0:1], v[6:7]1288; GFX10-NEXT: v_max_f64 v[2:3], v[2:3], v[8:9]1289; GFX10-NEXT: v_max_f64 v[4:5], v[4:5], v[10:11]1290; GFX10-NEXT: s_setpc_b64 s[30:31]1291;1292; GFX11-LABEL: v_maximum_v3f64__nnan_nsz:1293; GFX11: ; %bb.0:1294; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1295; GFX11-NEXT: v_max_f64 v[0:1], v[0:1], v[6:7]1296; GFX11-NEXT: v_max_f64 v[2:3], v[2:3], v[8:9]1297; GFX11-NEXT: v_max_f64 v[4:5], v[4:5], v[10:11]1298; GFX11-NEXT: s_setpc_b64 s[30:31]1299;1300; GFX12-LABEL: v_maximum_v3f64__nnan_nsz:1301; GFX12: ; %bb.0:1302; GFX12-NEXT: s_wait_loadcnt_dscnt 0x01303; GFX12-NEXT: s_wait_expcnt 0x01304; GFX12-NEXT: s_wait_samplecnt 0x01305; GFX12-NEXT: s_wait_bvhcnt 0x01306; GFX12-NEXT: s_wait_kmcnt 0x01307; GFX12-NEXT: v_maximum_f64 v[0:1], v[0:1], v[6:7]1308; GFX12-NEXT: v_maximum_f64 v[2:3], v[2:3], v[8:9]1309; GFX12-NEXT: v_maximum_f64 v[4:5], v[4:5], v[10:11]1310; GFX12-NEXT: s_setpc_b64 s[30:31]1311 %op = call nnan nsz <3 x double> @llvm.maximum.v3f64(<3 x double> %src0, <3 x double> %src1)1312 ret <3 x double> %op1313}1314 1315define <4 x double> @v_maximum_v4f64(<4 x double> %src0, <4 x double> %src1) {1316; GFX7-LABEL: v_maximum_v4f64:1317; GFX7: ; %bb.0:1318; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1319; GFX7-NEXT: v_max_f64 v[16:17], v[0:1], v[8:9]1320; GFX7-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[8:9]1321; GFX7-NEXT: v_max_f64 v[8:9], v[2:3], v[10:11]1322; GFX7-NEXT: v_cmp_u_f64_e64 s[4:5], v[2:3], v[10:11]1323; GFX7-NEXT: v_max_f64 v[10:11], v[4:5], v[12:13]1324; GFX7-NEXT: v_cmp_u_f64_e64 s[6:7], v[4:5], v[12:13]1325; GFX7-NEXT: v_max_f64 v[12:13], v[6:7], v[14:15]1326; GFX7-NEXT: v_cmp_u_f64_e64 s[8:9], v[6:7], v[14:15]1327; GFX7-NEXT: v_mov_b32_e32 v7, 0x7ff800001328; GFX7-NEXT: v_cndmask_b32_e64 v0, v16, 0, vcc1329; GFX7-NEXT: v_cndmask_b32_e32 v1, v17, v7, vcc1330; GFX7-NEXT: v_cndmask_b32_e64 v2, v8, 0, s[4:5]1331; GFX7-NEXT: v_cndmask_b32_e64 v3, v9, v7, s[4:5]1332; GFX7-NEXT: v_cndmask_b32_e64 v4, v10, 0, s[6:7]1333; GFX7-NEXT: v_cndmask_b32_e64 v5, v11, v7, s[6:7]1334; GFX7-NEXT: v_cndmask_b32_e64 v6, v12, 0, s[8:9]1335; GFX7-NEXT: v_cndmask_b32_e64 v7, v13, v7, s[8:9]1336; GFX7-NEXT: s_setpc_b64 s[30:31]1337;1338; GFX8-LABEL: v_maximum_v4f64:1339; GFX8: ; %bb.0:1340; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1341; GFX8-NEXT: v_max_f64 v[16:17], v[0:1], v[8:9]1342; GFX8-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[8:9]1343; GFX8-NEXT: v_max_f64 v[8:9], v[2:3], v[10:11]1344; GFX8-NEXT: v_cmp_u_f64_e64 s[4:5], v[2:3], v[10:11]1345; GFX8-NEXT: v_max_f64 v[10:11], v[4:5], v[12:13]1346; GFX8-NEXT: v_cmp_u_f64_e64 s[6:7], v[4:5], v[12:13]1347; GFX8-NEXT: v_max_f64 v[12:13], v[6:7], v[14:15]1348; GFX8-NEXT: v_cmp_u_f64_e64 s[8:9], v[6:7], v[14:15]1349; GFX8-NEXT: v_mov_b32_e32 v7, 0x7ff800001350; GFX8-NEXT: v_cndmask_b32_e64 v0, v16, 0, vcc1351; GFX8-NEXT: v_cndmask_b32_e32 v1, v17, v7, vcc1352; GFX8-NEXT: v_cndmask_b32_e64 v2, v8, 0, s[4:5]1353; GFX8-NEXT: v_cndmask_b32_e64 v3, v9, v7, s[4:5]1354; GFX8-NEXT: v_cndmask_b32_e64 v4, v10, 0, s[6:7]1355; GFX8-NEXT: v_cndmask_b32_e64 v5, v11, v7, s[6:7]1356; GFX8-NEXT: v_cndmask_b32_e64 v6, v12, 0, s[8:9]1357; GFX8-NEXT: v_cndmask_b32_e64 v7, v13, v7, s[8:9]1358; GFX8-NEXT: s_setpc_b64 s[30:31]1359;1360; GFX900-LABEL: v_maximum_v4f64:1361; GFX900: ; %bb.0:1362; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1363; GFX900-NEXT: v_max_f64 v[16:17], v[0:1], v[8:9]1364; GFX900-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[8:9]1365; GFX900-NEXT: v_max_f64 v[8:9], v[2:3], v[10:11]1366; GFX900-NEXT: v_cmp_u_f64_e64 s[4:5], v[2:3], v[10:11]1367; GFX900-NEXT: v_max_f64 v[10:11], v[4:5], v[12:13]1368; GFX900-NEXT: v_cmp_u_f64_e64 s[6:7], v[4:5], v[12:13]1369; GFX900-NEXT: v_max_f64 v[12:13], v[6:7], v[14:15]1370; GFX900-NEXT: v_cmp_u_f64_e64 s[8:9], v[6:7], v[14:15]1371; GFX900-NEXT: v_mov_b32_e32 v7, 0x7ff800001372; GFX900-NEXT: v_cndmask_b32_e64 v0, v16, 0, vcc1373; GFX900-NEXT: v_cndmask_b32_e32 v1, v17, v7, vcc1374; GFX900-NEXT: v_cndmask_b32_e64 v2, v8, 0, s[4:5]1375; GFX900-NEXT: v_cndmask_b32_e64 v3, v9, v7, s[4:5]1376; GFX900-NEXT: v_cndmask_b32_e64 v4, v10, 0, s[6:7]1377; GFX900-NEXT: v_cndmask_b32_e64 v5, v11, v7, s[6:7]1378; GFX900-NEXT: v_cndmask_b32_e64 v6, v12, 0, s[8:9]1379; GFX900-NEXT: v_cndmask_b32_e64 v7, v13, v7, s[8:9]1380; GFX900-NEXT: s_setpc_b64 s[30:31]1381;1382; GFX950-LABEL: v_maximum_v4f64:1383; GFX950: ; %bb.0:1384; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1385; GFX950-NEXT: v_max_f64 v[16:17], v[0:1], v[8:9]1386; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[8:9]1387; GFX950-NEXT: v_max_f64 v[8:9], v[2:3], v[10:11]1388; GFX950-NEXT: s_nop 01389; GFX950-NEXT: v_cndmask_b32_e64 v0, v16, 0, vcc1390; GFX950-NEXT: v_mov_b32_e32 v16, 0x7ff800001391; GFX950-NEXT: v_cndmask_b32_e32 v1, v17, v16, vcc1392; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[2:3], v[10:11]1393; GFX950-NEXT: s_nop 11394; GFX950-NEXT: v_cndmask_b32_e64 v2, v8, 0, vcc1395; GFX950-NEXT: v_cndmask_b32_e32 v3, v9, v16, vcc1396; GFX950-NEXT: v_max_f64 v[8:9], v[4:5], v[12:13]1397; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[4:5], v[12:13]1398; GFX950-NEXT: s_nop 11399; GFX950-NEXT: v_cndmask_b32_e64 v4, v8, 0, vcc1400; GFX950-NEXT: v_cndmask_b32_e32 v5, v9, v16, vcc1401; GFX950-NEXT: v_max_f64 v[8:9], v[6:7], v[14:15]1402; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[6:7], v[14:15]1403; GFX950-NEXT: s_nop 11404; GFX950-NEXT: v_cndmask_b32_e64 v6, v8, 0, vcc1405; GFX950-NEXT: v_cndmask_b32_e32 v7, v9, v16, vcc1406; GFX950-NEXT: s_setpc_b64 s[30:31]1407;1408; GFX10-LABEL: v_maximum_v4f64:1409; GFX10: ; %bb.0:1410; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1411; GFX10-NEXT: v_max_f64 v[16:17], v[0:1], v[8:9]1412; GFX10-NEXT: v_cmp_u_f64_e32 vcc_lo, v[0:1], v[8:9]1413; GFX10-NEXT: v_max_f64 v[8:9], v[2:3], v[10:11]1414; GFX10-NEXT: v_cmp_u_f64_e64 s4, v[2:3], v[10:11]1415; GFX10-NEXT: v_max_f64 v[10:11], v[4:5], v[12:13]1416; GFX10-NEXT: v_cmp_u_f64_e64 s5, v[4:5], v[12:13]1417; GFX10-NEXT: v_max_f64 v[12:13], v[6:7], v[14:15]1418; GFX10-NEXT: v_cmp_u_f64_e64 s6, v[6:7], v[14:15]1419; GFX10-NEXT: v_cndmask_b32_e64 v0, v16, 0, vcc_lo1420; GFX10-NEXT: v_cndmask_b32_e64 v1, v17, 0x7ff80000, vcc_lo1421; GFX10-NEXT: v_cndmask_b32_e64 v2, v8, 0, s41422; GFX10-NEXT: v_cndmask_b32_e64 v3, v9, 0x7ff80000, s41423; GFX10-NEXT: v_cndmask_b32_e64 v4, v10, 0, s51424; GFX10-NEXT: v_cndmask_b32_e64 v5, v11, 0x7ff80000, s51425; GFX10-NEXT: v_cndmask_b32_e64 v6, v12, 0, s61426; GFX10-NEXT: v_cndmask_b32_e64 v7, v13, 0x7ff80000, s61427; GFX10-NEXT: s_setpc_b64 s[30:31]1428;1429; GFX11-LABEL: v_maximum_v4f64:1430; GFX11: ; %bb.0:1431; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1432; GFX11-NEXT: v_max_f64 v[16:17], v[0:1], v[8:9]1433; GFX11-NEXT: v_cmp_u_f64_e32 vcc_lo, v[0:1], v[8:9]1434; GFX11-NEXT: v_max_f64 v[8:9], v[2:3], v[10:11]1435; GFX11-NEXT: v_cmp_u_f64_e64 s0, v[2:3], v[10:11]1436; GFX11-NEXT: v_max_f64 v[10:11], v[4:5], v[12:13]1437; GFX11-NEXT: v_cmp_u_f64_e64 s1, v[4:5], v[12:13]1438; GFX11-NEXT: v_max_f64 v[12:13], v[6:7], v[14:15]1439; GFX11-NEXT: v_cmp_u_f64_e64 s2, v[6:7], v[14:15]1440; GFX11-NEXT: v_cndmask_b32_e64 v0, v16, 0, vcc_lo1441; GFX11-NEXT: v_cndmask_b32_e64 v1, v17, 0x7ff80000, vcc_lo1442; GFX11-NEXT: v_cndmask_b32_e64 v2, v8, 0, s01443; GFX11-NEXT: v_cndmask_b32_e64 v3, v9, 0x7ff80000, s01444; GFX11-NEXT: v_cndmask_b32_e64 v4, v10, 0, s11445; GFX11-NEXT: v_cndmask_b32_e64 v5, v11, 0x7ff80000, s11446; GFX11-NEXT: v_cndmask_b32_e64 v6, v12, 0, s21447; GFX11-NEXT: v_cndmask_b32_e64 v7, v13, 0x7ff80000, s21448; GFX11-NEXT: s_setpc_b64 s[30:31]1449;1450; GFX12-LABEL: v_maximum_v4f64:1451; GFX12: ; %bb.0:1452; GFX12-NEXT: s_wait_loadcnt_dscnt 0x01453; GFX12-NEXT: s_wait_expcnt 0x01454; GFX12-NEXT: s_wait_samplecnt 0x01455; GFX12-NEXT: s_wait_bvhcnt 0x01456; GFX12-NEXT: s_wait_kmcnt 0x01457; GFX12-NEXT: v_maximum_f64 v[0:1], v[0:1], v[8:9]1458; GFX12-NEXT: v_maximum_f64 v[2:3], v[2:3], v[10:11]1459; GFX12-NEXT: v_maximum_f64 v[4:5], v[4:5], v[12:13]1460; GFX12-NEXT: v_maximum_f64 v[6:7], v[6:7], v[14:15]1461; GFX12-NEXT: s_setpc_b64 s[30:31]1462 %op = call <4 x double> @llvm.maximum.v4f64(<4 x double> %src0, <4 x double> %src1)1463 ret <4 x double> %op1464}1465 1466define <4 x double> @v_maximum_v4f64__nnan(<4 x double> %src0, <4 x double> %src1) {1467; GFX7-LABEL: v_maximum_v4f64__nnan:1468; GFX7: ; %bb.0:1469; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1470; GFX7-NEXT: v_max_f64 v[0:1], v[0:1], v[8:9]1471; GFX7-NEXT: v_max_f64 v[2:3], v[2:3], v[10:11]1472; GFX7-NEXT: v_max_f64 v[4:5], v[4:5], v[12:13]1473; GFX7-NEXT: v_max_f64 v[6:7], v[6:7], v[14:15]1474; GFX7-NEXT: s_setpc_b64 s[30:31]1475;1476; GFX8-LABEL: v_maximum_v4f64__nnan:1477; GFX8: ; %bb.0:1478; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1479; GFX8-NEXT: v_max_f64 v[0:1], v[0:1], v[8:9]1480; GFX8-NEXT: v_max_f64 v[2:3], v[2:3], v[10:11]1481; GFX8-NEXT: v_max_f64 v[4:5], v[4:5], v[12:13]1482; GFX8-NEXT: v_max_f64 v[6:7], v[6:7], v[14:15]1483; GFX8-NEXT: s_setpc_b64 s[30:31]1484;1485; GFX9-LABEL: v_maximum_v4f64__nnan:1486; GFX9: ; %bb.0:1487; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1488; GFX9-NEXT: v_max_f64 v[0:1], v[0:1], v[8:9]1489; GFX9-NEXT: v_max_f64 v[2:3], v[2:3], v[10:11]1490; GFX9-NEXT: v_max_f64 v[4:5], v[4:5], v[12:13]1491; GFX9-NEXT: v_max_f64 v[6:7], v[6:7], v[14:15]1492; GFX9-NEXT: s_setpc_b64 s[30:31]1493;1494; GFX10-LABEL: v_maximum_v4f64__nnan:1495; GFX10: ; %bb.0:1496; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1497; GFX10-NEXT: v_max_f64 v[0:1], v[0:1], v[8:9]1498; GFX10-NEXT: v_max_f64 v[2:3], v[2:3], v[10:11]1499; GFX10-NEXT: v_max_f64 v[4:5], v[4:5], v[12:13]1500; GFX10-NEXT: v_max_f64 v[6:7], v[6:7], v[14:15]1501; GFX10-NEXT: s_setpc_b64 s[30:31]1502;1503; GFX11-LABEL: v_maximum_v4f64__nnan:1504; GFX11: ; %bb.0:1505; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1506; GFX11-NEXT: v_max_f64 v[0:1], v[0:1], v[8:9]1507; GFX11-NEXT: v_max_f64 v[2:3], v[2:3], v[10:11]1508; GFX11-NEXT: v_max_f64 v[4:5], v[4:5], v[12:13]1509; GFX11-NEXT: v_max_f64 v[6:7], v[6:7], v[14:15]1510; GFX11-NEXT: s_setpc_b64 s[30:31]1511;1512; GFX12-LABEL: v_maximum_v4f64__nnan:1513; GFX12: ; %bb.0:1514; GFX12-NEXT: s_wait_loadcnt_dscnt 0x01515; GFX12-NEXT: s_wait_expcnt 0x01516; GFX12-NEXT: s_wait_samplecnt 0x01517; GFX12-NEXT: s_wait_bvhcnt 0x01518; GFX12-NEXT: s_wait_kmcnt 0x01519; GFX12-NEXT: v_maximum_f64 v[0:1], v[0:1], v[8:9]1520; GFX12-NEXT: v_maximum_f64 v[2:3], v[2:3], v[10:11]1521; GFX12-NEXT: v_maximum_f64 v[4:5], v[4:5], v[12:13]1522; GFX12-NEXT: v_maximum_f64 v[6:7], v[6:7], v[14:15]1523; GFX12-NEXT: s_setpc_b64 s[30:31]1524 %op = call nnan <4 x double> @llvm.maximum.v4f64(<4 x double> %src0, <4 x double> %src1)1525 ret <4 x double> %op1526}1527 1528define <4 x double> @v_maximum_v4f64__nsz(<4 x double> %src0, <4 x double> %src1) {1529; GFX7-LABEL: v_maximum_v4f64__nsz:1530; GFX7: ; %bb.0:1531; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1532; GFX7-NEXT: v_max_f64 v[16:17], v[0:1], v[8:9]1533; GFX7-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[8:9]1534; GFX7-NEXT: v_max_f64 v[8:9], v[2:3], v[10:11]1535; GFX7-NEXT: v_cmp_u_f64_e64 s[4:5], v[2:3], v[10:11]1536; GFX7-NEXT: v_max_f64 v[10:11], v[4:5], v[12:13]1537; GFX7-NEXT: v_cmp_u_f64_e64 s[6:7], v[4:5], v[12:13]1538; GFX7-NEXT: v_max_f64 v[12:13], v[6:7], v[14:15]1539; GFX7-NEXT: v_cmp_u_f64_e64 s[8:9], v[6:7], v[14:15]1540; GFX7-NEXT: v_mov_b32_e32 v7, 0x7ff800001541; GFX7-NEXT: v_cndmask_b32_e64 v0, v16, 0, vcc1542; GFX7-NEXT: v_cndmask_b32_e32 v1, v17, v7, vcc1543; GFX7-NEXT: v_cndmask_b32_e64 v2, v8, 0, s[4:5]1544; GFX7-NEXT: v_cndmask_b32_e64 v3, v9, v7, s[4:5]1545; GFX7-NEXT: v_cndmask_b32_e64 v4, v10, 0, s[6:7]1546; GFX7-NEXT: v_cndmask_b32_e64 v5, v11, v7, s[6:7]1547; GFX7-NEXT: v_cndmask_b32_e64 v6, v12, 0, s[8:9]1548; GFX7-NEXT: v_cndmask_b32_e64 v7, v13, v7, s[8:9]1549; GFX7-NEXT: s_setpc_b64 s[30:31]1550;1551; GFX8-LABEL: v_maximum_v4f64__nsz:1552; GFX8: ; %bb.0:1553; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1554; GFX8-NEXT: v_max_f64 v[16:17], v[0:1], v[8:9]1555; GFX8-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[8:9]1556; GFX8-NEXT: v_max_f64 v[8:9], v[2:3], v[10:11]1557; GFX8-NEXT: v_cmp_u_f64_e64 s[4:5], v[2:3], v[10:11]1558; GFX8-NEXT: v_max_f64 v[10:11], v[4:5], v[12:13]1559; GFX8-NEXT: v_cmp_u_f64_e64 s[6:7], v[4:5], v[12:13]1560; GFX8-NEXT: v_max_f64 v[12:13], v[6:7], v[14:15]1561; GFX8-NEXT: v_cmp_u_f64_e64 s[8:9], v[6:7], v[14:15]1562; GFX8-NEXT: v_mov_b32_e32 v7, 0x7ff800001563; GFX8-NEXT: v_cndmask_b32_e64 v0, v16, 0, vcc1564; GFX8-NEXT: v_cndmask_b32_e32 v1, v17, v7, vcc1565; GFX8-NEXT: v_cndmask_b32_e64 v2, v8, 0, s[4:5]1566; GFX8-NEXT: v_cndmask_b32_e64 v3, v9, v7, s[4:5]1567; GFX8-NEXT: v_cndmask_b32_e64 v4, v10, 0, s[6:7]1568; GFX8-NEXT: v_cndmask_b32_e64 v5, v11, v7, s[6:7]1569; GFX8-NEXT: v_cndmask_b32_e64 v6, v12, 0, s[8:9]1570; GFX8-NEXT: v_cndmask_b32_e64 v7, v13, v7, s[8:9]1571; GFX8-NEXT: s_setpc_b64 s[30:31]1572;1573; GFX900-LABEL: v_maximum_v4f64__nsz:1574; GFX900: ; %bb.0:1575; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1576; GFX900-NEXT: v_max_f64 v[16:17], v[0:1], v[8:9]1577; GFX900-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[8:9]1578; GFX900-NEXT: v_max_f64 v[8:9], v[2:3], v[10:11]1579; GFX900-NEXT: v_cmp_u_f64_e64 s[4:5], v[2:3], v[10:11]1580; GFX900-NEXT: v_max_f64 v[10:11], v[4:5], v[12:13]1581; GFX900-NEXT: v_cmp_u_f64_e64 s[6:7], v[4:5], v[12:13]1582; GFX900-NEXT: v_max_f64 v[12:13], v[6:7], v[14:15]1583; GFX900-NEXT: v_cmp_u_f64_e64 s[8:9], v[6:7], v[14:15]1584; GFX900-NEXT: v_mov_b32_e32 v7, 0x7ff800001585; GFX900-NEXT: v_cndmask_b32_e64 v0, v16, 0, vcc1586; GFX900-NEXT: v_cndmask_b32_e32 v1, v17, v7, vcc1587; GFX900-NEXT: v_cndmask_b32_e64 v2, v8, 0, s[4:5]1588; GFX900-NEXT: v_cndmask_b32_e64 v3, v9, v7, s[4:5]1589; GFX900-NEXT: v_cndmask_b32_e64 v4, v10, 0, s[6:7]1590; GFX900-NEXT: v_cndmask_b32_e64 v5, v11, v7, s[6:7]1591; GFX900-NEXT: v_cndmask_b32_e64 v6, v12, 0, s[8:9]1592; GFX900-NEXT: v_cndmask_b32_e64 v7, v13, v7, s[8:9]1593; GFX900-NEXT: s_setpc_b64 s[30:31]1594;1595; GFX950-LABEL: v_maximum_v4f64__nsz:1596; GFX950: ; %bb.0:1597; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1598; GFX950-NEXT: v_max_f64 v[16:17], v[0:1], v[8:9]1599; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[8:9]1600; GFX950-NEXT: v_max_f64 v[8:9], v[2:3], v[10:11]1601; GFX950-NEXT: s_nop 01602; GFX950-NEXT: v_cndmask_b32_e64 v0, v16, 0, vcc1603; GFX950-NEXT: v_mov_b32_e32 v16, 0x7ff800001604; GFX950-NEXT: v_cndmask_b32_e32 v1, v17, v16, vcc1605; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[2:3], v[10:11]1606; GFX950-NEXT: s_nop 11607; GFX950-NEXT: v_cndmask_b32_e64 v2, v8, 0, vcc1608; GFX950-NEXT: v_cndmask_b32_e32 v3, v9, v16, vcc1609; GFX950-NEXT: v_max_f64 v[8:9], v[4:5], v[12:13]1610; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[4:5], v[12:13]1611; GFX950-NEXT: s_nop 11612; GFX950-NEXT: v_cndmask_b32_e64 v4, v8, 0, vcc1613; GFX950-NEXT: v_cndmask_b32_e32 v5, v9, v16, vcc1614; GFX950-NEXT: v_max_f64 v[8:9], v[6:7], v[14:15]1615; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[6:7], v[14:15]1616; GFX950-NEXT: s_nop 11617; GFX950-NEXT: v_cndmask_b32_e64 v6, v8, 0, vcc1618; GFX950-NEXT: v_cndmask_b32_e32 v7, v9, v16, vcc1619; GFX950-NEXT: s_setpc_b64 s[30:31]1620;1621; GFX10-LABEL: v_maximum_v4f64__nsz:1622; GFX10: ; %bb.0:1623; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1624; GFX10-NEXT: v_max_f64 v[16:17], v[0:1], v[8:9]1625; GFX10-NEXT: v_cmp_u_f64_e32 vcc_lo, v[0:1], v[8:9]1626; GFX10-NEXT: v_max_f64 v[8:9], v[2:3], v[10:11]1627; GFX10-NEXT: v_cmp_u_f64_e64 s4, v[2:3], v[10:11]1628; GFX10-NEXT: v_max_f64 v[10:11], v[4:5], v[12:13]1629; GFX10-NEXT: v_cmp_u_f64_e64 s5, v[4:5], v[12:13]1630; GFX10-NEXT: v_max_f64 v[12:13], v[6:7], v[14:15]1631; GFX10-NEXT: v_cmp_u_f64_e64 s6, v[6:7], v[14:15]1632; GFX10-NEXT: v_cndmask_b32_e64 v0, v16, 0, vcc_lo1633; GFX10-NEXT: v_cndmask_b32_e64 v1, v17, 0x7ff80000, vcc_lo1634; GFX10-NEXT: v_cndmask_b32_e64 v2, v8, 0, s41635; GFX10-NEXT: v_cndmask_b32_e64 v3, v9, 0x7ff80000, s41636; GFX10-NEXT: v_cndmask_b32_e64 v4, v10, 0, s51637; GFX10-NEXT: v_cndmask_b32_e64 v5, v11, 0x7ff80000, s51638; GFX10-NEXT: v_cndmask_b32_e64 v6, v12, 0, s61639; GFX10-NEXT: v_cndmask_b32_e64 v7, v13, 0x7ff80000, s61640; GFX10-NEXT: s_setpc_b64 s[30:31]1641;1642; GFX11-LABEL: v_maximum_v4f64__nsz:1643; GFX11: ; %bb.0:1644; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1645; GFX11-NEXT: v_max_f64 v[16:17], v[0:1], v[8:9]1646; GFX11-NEXT: v_cmp_u_f64_e32 vcc_lo, v[0:1], v[8:9]1647; GFX11-NEXT: v_max_f64 v[8:9], v[2:3], v[10:11]1648; GFX11-NEXT: v_cmp_u_f64_e64 s0, v[2:3], v[10:11]1649; GFX11-NEXT: v_max_f64 v[10:11], v[4:5], v[12:13]1650; GFX11-NEXT: v_cmp_u_f64_e64 s1, v[4:5], v[12:13]1651; GFX11-NEXT: v_max_f64 v[12:13], v[6:7], v[14:15]1652; GFX11-NEXT: v_cmp_u_f64_e64 s2, v[6:7], v[14:15]1653; GFX11-NEXT: v_cndmask_b32_e64 v0, v16, 0, vcc_lo1654; GFX11-NEXT: v_cndmask_b32_e64 v1, v17, 0x7ff80000, vcc_lo1655; GFX11-NEXT: v_cndmask_b32_e64 v2, v8, 0, s01656; GFX11-NEXT: v_cndmask_b32_e64 v3, v9, 0x7ff80000, s01657; GFX11-NEXT: v_cndmask_b32_e64 v4, v10, 0, s11658; GFX11-NEXT: v_cndmask_b32_e64 v5, v11, 0x7ff80000, s11659; GFX11-NEXT: v_cndmask_b32_e64 v6, v12, 0, s21660; GFX11-NEXT: v_cndmask_b32_e64 v7, v13, 0x7ff80000, s21661; GFX11-NEXT: s_setpc_b64 s[30:31]1662;1663; GFX12-LABEL: v_maximum_v4f64__nsz:1664; GFX12: ; %bb.0:1665; GFX12-NEXT: s_wait_loadcnt_dscnt 0x01666; GFX12-NEXT: s_wait_expcnt 0x01667; GFX12-NEXT: s_wait_samplecnt 0x01668; GFX12-NEXT: s_wait_bvhcnt 0x01669; GFX12-NEXT: s_wait_kmcnt 0x01670; GFX12-NEXT: v_maximum_f64 v[0:1], v[0:1], v[8:9]1671; GFX12-NEXT: v_maximum_f64 v[2:3], v[2:3], v[10:11]1672; GFX12-NEXT: v_maximum_f64 v[4:5], v[4:5], v[12:13]1673; GFX12-NEXT: v_maximum_f64 v[6:7], v[6:7], v[14:15]1674; GFX12-NEXT: s_setpc_b64 s[30:31]1675 %op = call nsz <4 x double> @llvm.maximum.v4f64(<4 x double> %src0, <4 x double> %src1)1676 ret <4 x double> %op1677}1678 1679define <4 x double> @v_maximum_v4f64__nnan_nsz(<4 x double> %src0, <4 x double> %src1) {1680; GFX7-LABEL: v_maximum_v4f64__nnan_nsz:1681; GFX7: ; %bb.0:1682; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1683; GFX7-NEXT: v_max_f64 v[0:1], v[0:1], v[8:9]1684; GFX7-NEXT: v_max_f64 v[2:3], v[2:3], v[10:11]1685; GFX7-NEXT: v_max_f64 v[4:5], v[4:5], v[12:13]1686; GFX7-NEXT: v_max_f64 v[6:7], v[6:7], v[14:15]1687; GFX7-NEXT: s_setpc_b64 s[30:31]1688;1689; GFX8-LABEL: v_maximum_v4f64__nnan_nsz:1690; GFX8: ; %bb.0:1691; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1692; GFX8-NEXT: v_max_f64 v[0:1], v[0:1], v[8:9]1693; GFX8-NEXT: v_max_f64 v[2:3], v[2:3], v[10:11]1694; GFX8-NEXT: v_max_f64 v[4:5], v[4:5], v[12:13]1695; GFX8-NEXT: v_max_f64 v[6:7], v[6:7], v[14:15]1696; GFX8-NEXT: s_setpc_b64 s[30:31]1697;1698; GFX9-LABEL: v_maximum_v4f64__nnan_nsz:1699; GFX9: ; %bb.0:1700; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1701; GFX9-NEXT: v_max_f64 v[0:1], v[0:1], v[8:9]1702; GFX9-NEXT: v_max_f64 v[2:3], v[2:3], v[10:11]1703; GFX9-NEXT: v_max_f64 v[4:5], v[4:5], v[12:13]1704; GFX9-NEXT: v_max_f64 v[6:7], v[6:7], v[14:15]1705; GFX9-NEXT: s_setpc_b64 s[30:31]1706;1707; GFX10-LABEL: v_maximum_v4f64__nnan_nsz:1708; GFX10: ; %bb.0:1709; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1710; GFX10-NEXT: v_max_f64 v[0:1], v[0:1], v[8:9]1711; GFX10-NEXT: v_max_f64 v[2:3], v[2:3], v[10:11]1712; GFX10-NEXT: v_max_f64 v[4:5], v[4:5], v[12:13]1713; GFX10-NEXT: v_max_f64 v[6:7], v[6:7], v[14:15]1714; GFX10-NEXT: s_setpc_b64 s[30:31]1715;1716; GFX11-LABEL: v_maximum_v4f64__nnan_nsz:1717; GFX11: ; %bb.0:1718; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1719; GFX11-NEXT: v_max_f64 v[0:1], v[0:1], v[8:9]1720; GFX11-NEXT: v_max_f64 v[2:3], v[2:3], v[10:11]1721; GFX11-NEXT: v_max_f64 v[4:5], v[4:5], v[12:13]1722; GFX11-NEXT: v_max_f64 v[6:7], v[6:7], v[14:15]1723; GFX11-NEXT: s_setpc_b64 s[30:31]1724;1725; GFX12-LABEL: v_maximum_v4f64__nnan_nsz:1726; GFX12: ; %bb.0:1727; GFX12-NEXT: s_wait_loadcnt_dscnt 0x01728; GFX12-NEXT: s_wait_expcnt 0x01729; GFX12-NEXT: s_wait_samplecnt 0x01730; GFX12-NEXT: s_wait_bvhcnt 0x01731; GFX12-NEXT: s_wait_kmcnt 0x01732; GFX12-NEXT: v_maximum_f64 v[0:1], v[0:1], v[8:9]1733; GFX12-NEXT: v_maximum_f64 v[2:3], v[2:3], v[10:11]1734; GFX12-NEXT: v_maximum_f64 v[4:5], v[4:5], v[12:13]1735; GFX12-NEXT: v_maximum_f64 v[6:7], v[6:7], v[14:15]1736; GFX12-NEXT: s_setpc_b64 s[30:31]1737 %op = call nnan nsz <4 x double> @llvm.maximum.v4f64(<4 x double> %src0, <4 x double> %src1)1738 ret <4 x double> %op1739}1740 1741define <8 x double> @v_maximum_v8f64(<8 x double> %src0, <8 x double> %src1) {1742; GFX7-LABEL: v_maximum_v8f64:1743; GFX7: ; %bb.0:1744; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1745; GFX7-NEXT: buffer_load_dword v31, off, s[0:3], s321746; GFX7-NEXT: v_max_f64 v[32:33], v[0:1], v[16:17]1747; GFX7-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[16:17]1748; GFX7-NEXT: v_max_f64 v[16:17], v[2:3], v[18:19]1749; GFX7-NEXT: v_cmp_u_f64_e64 s[4:5], v[2:3], v[18:19]1750; GFX7-NEXT: v_mov_b32_e32 v34, 0x7ff800001751; GFX7-NEXT: v_max_f64 v[18:19], v[4:5], v[20:21]1752; GFX7-NEXT: v_cmp_u_f64_e64 s[6:7], v[4:5], v[20:21]1753; GFX7-NEXT: v_max_f64 v[20:21], v[6:7], v[22:23]1754; GFX7-NEXT: v_cmp_u_f64_e64 s[8:9], v[6:7], v[22:23]1755; GFX7-NEXT: v_max_f64 v[22:23], v[8:9], v[24:25]1756; GFX7-NEXT: v_cmp_u_f64_e64 s[10:11], v[8:9], v[24:25]1757; GFX7-NEXT: v_max_f64 v[24:25], v[10:11], v[26:27]1758; GFX7-NEXT: v_cmp_u_f64_e64 s[12:13], v[10:11], v[26:27]1759; GFX7-NEXT: v_max_f64 v[26:27], v[12:13], v[28:29]1760; GFX7-NEXT: v_cmp_u_f64_e64 s[14:15], v[12:13], v[28:29]1761; GFX7-NEXT: v_cndmask_b32_e64 v0, v32, 0, vcc1762; GFX7-NEXT: v_cndmask_b32_e32 v1, v33, v34, vcc1763; GFX7-NEXT: v_cndmask_b32_e64 v2, v16, 0, s[4:5]1764; GFX7-NEXT: v_cndmask_b32_e64 v3, v17, v34, s[4:5]1765; GFX7-NEXT: v_cndmask_b32_e64 v4, v18, 0, s[6:7]1766; GFX7-NEXT: v_cndmask_b32_e64 v5, v19, v34, s[6:7]1767; GFX7-NEXT: v_cndmask_b32_e64 v6, v20, 0, s[8:9]1768; GFX7-NEXT: v_cndmask_b32_e64 v7, v21, v34, s[8:9]1769; GFX7-NEXT: v_cndmask_b32_e64 v8, v22, 0, s[10:11]1770; GFX7-NEXT: v_cndmask_b32_e64 v9, v23, v34, s[10:11]1771; GFX7-NEXT: v_cndmask_b32_e64 v10, v24, 0, s[12:13]1772; GFX7-NEXT: v_cndmask_b32_e64 v11, v25, v34, s[12:13]1773; GFX7-NEXT: v_cndmask_b32_e64 v12, v26, 0, s[14:15]1774; GFX7-NEXT: v_cndmask_b32_e64 v13, v27, v34, s[14:15]1775; GFX7-NEXT: s_waitcnt vmcnt(0)1776; GFX7-NEXT: v_max_f64 v[16:17], v[14:15], v[30:31]1777; GFX7-NEXT: v_cmp_u_f64_e32 vcc, v[14:15], v[30:31]1778; GFX7-NEXT: v_cndmask_b32_e64 v14, v16, 0, vcc1779; GFX7-NEXT: v_cndmask_b32_e32 v15, v17, v34, vcc1780; GFX7-NEXT: s_setpc_b64 s[30:31]1781;1782; GFX8-LABEL: v_maximum_v8f64:1783; GFX8: ; %bb.0:1784; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1785; GFX8-NEXT: buffer_load_dword v31, off, s[0:3], s321786; GFX8-NEXT: v_max_f64 v[32:33], v[0:1], v[16:17]1787; GFX8-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[16:17]1788; GFX8-NEXT: v_max_f64 v[16:17], v[2:3], v[18:19]1789; GFX8-NEXT: v_cmp_u_f64_e64 s[4:5], v[2:3], v[18:19]1790; GFX8-NEXT: v_mov_b32_e32 v34, 0x7ff800001791; GFX8-NEXT: v_max_f64 v[18:19], v[4:5], v[20:21]1792; GFX8-NEXT: v_cmp_u_f64_e64 s[6:7], v[4:5], v[20:21]1793; GFX8-NEXT: v_max_f64 v[20:21], v[6:7], v[22:23]1794; GFX8-NEXT: v_cmp_u_f64_e64 s[8:9], v[6:7], v[22:23]1795; GFX8-NEXT: v_max_f64 v[22:23], v[8:9], v[24:25]1796; GFX8-NEXT: v_cmp_u_f64_e64 s[10:11], v[8:9], v[24:25]1797; GFX8-NEXT: v_max_f64 v[24:25], v[10:11], v[26:27]1798; GFX8-NEXT: v_cmp_u_f64_e64 s[12:13], v[10:11], v[26:27]1799; GFX8-NEXT: v_max_f64 v[26:27], v[12:13], v[28:29]1800; GFX8-NEXT: v_cmp_u_f64_e64 s[14:15], v[12:13], v[28:29]1801; GFX8-NEXT: v_cndmask_b32_e64 v0, v32, 0, vcc1802; GFX8-NEXT: v_cndmask_b32_e32 v1, v33, v34, vcc1803; GFX8-NEXT: v_cndmask_b32_e64 v2, v16, 0, s[4:5]1804; GFX8-NEXT: v_cndmask_b32_e64 v3, v17, v34, s[4:5]1805; GFX8-NEXT: v_cndmask_b32_e64 v4, v18, 0, s[6:7]1806; GFX8-NEXT: v_cndmask_b32_e64 v5, v19, v34, s[6:7]1807; GFX8-NEXT: v_cndmask_b32_e64 v6, v20, 0, s[8:9]1808; GFX8-NEXT: v_cndmask_b32_e64 v7, v21, v34, s[8:9]1809; GFX8-NEXT: v_cndmask_b32_e64 v8, v22, 0, s[10:11]1810; GFX8-NEXT: v_cndmask_b32_e64 v9, v23, v34, s[10:11]1811; GFX8-NEXT: v_cndmask_b32_e64 v10, v24, 0, s[12:13]1812; GFX8-NEXT: v_cndmask_b32_e64 v11, v25, v34, s[12:13]1813; GFX8-NEXT: v_cndmask_b32_e64 v12, v26, 0, s[14:15]1814; GFX8-NEXT: v_cndmask_b32_e64 v13, v27, v34, s[14:15]1815; GFX8-NEXT: s_waitcnt vmcnt(0)1816; GFX8-NEXT: v_max_f64 v[16:17], v[14:15], v[30:31]1817; GFX8-NEXT: v_cmp_u_f64_e32 vcc, v[14:15], v[30:31]1818; GFX8-NEXT: v_cndmask_b32_e64 v14, v16, 0, vcc1819; GFX8-NEXT: v_cndmask_b32_e32 v15, v17, v34, vcc1820; GFX8-NEXT: s_setpc_b64 s[30:31]1821;1822; GFX900-LABEL: v_maximum_v8f64:1823; GFX900: ; %bb.0:1824; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1825; GFX900-NEXT: buffer_load_dword v31, off, s[0:3], s321826; GFX900-NEXT: v_max_f64 v[32:33], v[0:1], v[16:17]1827; GFX900-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[16:17]1828; GFX900-NEXT: v_max_f64 v[16:17], v[2:3], v[18:19]1829; GFX900-NEXT: v_cmp_u_f64_e64 s[4:5], v[2:3], v[18:19]1830; GFX900-NEXT: v_mov_b32_e32 v34, 0x7ff800001831; GFX900-NEXT: v_max_f64 v[18:19], v[4:5], v[20:21]1832; GFX900-NEXT: v_cmp_u_f64_e64 s[6:7], v[4:5], v[20:21]1833; GFX900-NEXT: v_max_f64 v[20:21], v[6:7], v[22:23]1834; GFX900-NEXT: v_cmp_u_f64_e64 s[8:9], v[6:7], v[22:23]1835; GFX900-NEXT: v_max_f64 v[22:23], v[8:9], v[24:25]1836; GFX900-NEXT: v_cmp_u_f64_e64 s[10:11], v[8:9], v[24:25]1837; GFX900-NEXT: v_max_f64 v[24:25], v[10:11], v[26:27]1838; GFX900-NEXT: v_cmp_u_f64_e64 s[12:13], v[10:11], v[26:27]1839; GFX900-NEXT: v_max_f64 v[26:27], v[12:13], v[28:29]1840; GFX900-NEXT: v_cmp_u_f64_e64 s[14:15], v[12:13], v[28:29]1841; GFX900-NEXT: v_cndmask_b32_e64 v0, v32, 0, vcc1842; GFX900-NEXT: v_cndmask_b32_e32 v1, v33, v34, vcc1843; GFX900-NEXT: v_cndmask_b32_e64 v2, v16, 0, s[4:5]1844; GFX900-NEXT: v_cndmask_b32_e64 v3, v17, v34, s[4:5]1845; GFX900-NEXT: v_cndmask_b32_e64 v4, v18, 0, s[6:7]1846; GFX900-NEXT: v_cndmask_b32_e64 v5, v19, v34, s[6:7]1847; GFX900-NEXT: v_cndmask_b32_e64 v6, v20, 0, s[8:9]1848; GFX900-NEXT: v_cndmask_b32_e64 v7, v21, v34, s[8:9]1849; GFX900-NEXT: v_cndmask_b32_e64 v8, v22, 0, s[10:11]1850; GFX900-NEXT: v_cndmask_b32_e64 v9, v23, v34, s[10:11]1851; GFX900-NEXT: v_cndmask_b32_e64 v10, v24, 0, s[12:13]1852; GFX900-NEXT: v_cndmask_b32_e64 v11, v25, v34, s[12:13]1853; GFX900-NEXT: v_cndmask_b32_e64 v12, v26, 0, s[14:15]1854; GFX900-NEXT: v_cndmask_b32_e64 v13, v27, v34, s[14:15]1855; GFX900-NEXT: s_waitcnt vmcnt(0)1856; GFX900-NEXT: v_max_f64 v[16:17], v[14:15], v[30:31]1857; GFX900-NEXT: v_cmp_u_f64_e32 vcc, v[14:15], v[30:31]1858; GFX900-NEXT: v_cndmask_b32_e64 v14, v16, 0, vcc1859; GFX900-NEXT: v_cndmask_b32_e32 v15, v17, v34, vcc1860; GFX900-NEXT: s_setpc_b64 s[30:31]1861;1862; GFX950-LABEL: v_maximum_v8f64:1863; GFX950: ; %bb.0:1864; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1865; GFX950-NEXT: scratch_load_dword v31, off, s321866; GFX950-NEXT: v_mov_b32_e32 v54, 0x7ff800001867; GFX950-NEXT: v_max_f64 v[32:33], v[0:1], v[16:17]1868; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[16:17]1869; GFX950-NEXT: v_max_f64 v[34:35], v[2:3], v[18:19]1870; GFX950-NEXT: v_max_f64 v[36:37], v[4:5], v[20:21]1871; GFX950-NEXT: v_cndmask_b32_e64 v0, v32, 0, vcc1872; GFX950-NEXT: v_cndmask_b32_e32 v1, v33, v54, vcc1873; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[2:3], v[18:19]1874; GFX950-NEXT: v_max_f64 v[38:39], v[6:7], v[22:23]1875; GFX950-NEXT: v_max_f64 v[48:49], v[8:9], v[24:25]1876; GFX950-NEXT: v_cndmask_b32_e64 v2, v34, 0, vcc1877; GFX950-NEXT: v_cndmask_b32_e32 v3, v35, v54, vcc1878; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[4:5], v[20:21]1879; GFX950-NEXT: v_max_f64 v[50:51], v[10:11], v[26:27]1880; GFX950-NEXT: v_max_f64 v[52:53], v[12:13], v[28:29]1881; GFX950-NEXT: v_cndmask_b32_e64 v4, v36, 0, vcc1882; GFX950-NEXT: v_cndmask_b32_e32 v5, v37, v54, vcc1883; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[6:7], v[22:23]1884; GFX950-NEXT: s_waitcnt vmcnt(0)1885; GFX950-NEXT: v_max_f64 v[16:17], v[14:15], v[30:31]1886; GFX950-NEXT: v_cndmask_b32_e64 v6, v38, 0, vcc1887; GFX950-NEXT: v_cndmask_b32_e32 v7, v39, v54, vcc1888; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[8:9], v[24:25]1889; GFX950-NEXT: s_nop 11890; GFX950-NEXT: v_cndmask_b32_e64 v8, v48, 0, vcc1891; GFX950-NEXT: v_cndmask_b32_e32 v9, v49, v54, vcc1892; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[10:11], v[26:27]1893; GFX950-NEXT: s_nop 11894; GFX950-NEXT: v_cndmask_b32_e64 v10, v50, 0, vcc1895; GFX950-NEXT: v_cndmask_b32_e32 v11, v51, v54, vcc1896; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[12:13], v[28:29]1897; GFX950-NEXT: s_nop 11898; GFX950-NEXT: v_cndmask_b32_e64 v12, v52, 0, vcc1899; GFX950-NEXT: v_cndmask_b32_e32 v13, v53, v54, vcc1900; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[14:15], v[30:31]1901; GFX950-NEXT: s_nop 11902; GFX950-NEXT: v_cndmask_b32_e64 v14, v16, 0, vcc1903; GFX950-NEXT: v_cndmask_b32_e32 v15, v17, v54, vcc1904; GFX950-NEXT: s_setpc_b64 s[30:31]1905;1906; GFX10-LABEL: v_maximum_v8f64:1907; GFX10: ; %bb.0:1908; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1909; GFX10-NEXT: buffer_load_dword v31, off, s[0:3], s321910; GFX10-NEXT: v_max_f64 v[32:33], v[0:1], v[16:17]1911; GFX10-NEXT: v_cmp_u_f64_e32 vcc_lo, v[0:1], v[16:17]1912; GFX10-NEXT: v_max_f64 v[16:17], v[2:3], v[18:19]1913; GFX10-NEXT: v_cmp_u_f64_e64 s4, v[2:3], v[18:19]1914; GFX10-NEXT: v_max_f64 v[18:19], v[4:5], v[20:21]1915; GFX10-NEXT: v_cmp_u_f64_e64 s5, v[4:5], v[20:21]1916; GFX10-NEXT: v_max_f64 v[20:21], v[6:7], v[22:23]1917; GFX10-NEXT: v_cmp_u_f64_e64 s6, v[6:7], v[22:23]1918; GFX10-NEXT: v_max_f64 v[22:23], v[8:9], v[24:25]1919; GFX10-NEXT: v_cmp_u_f64_e64 s7, v[8:9], v[24:25]1920; GFX10-NEXT: v_max_f64 v[24:25], v[10:11], v[26:27]1921; GFX10-NEXT: v_cmp_u_f64_e64 s8, v[10:11], v[26:27]1922; GFX10-NEXT: v_max_f64 v[26:27], v[12:13], v[28:29]1923; GFX10-NEXT: v_cmp_u_f64_e64 s9, v[12:13], v[28:29]1924; GFX10-NEXT: v_cndmask_b32_e64 v0, v32, 0, vcc_lo1925; GFX10-NEXT: v_cndmask_b32_e64 v1, v33, 0x7ff80000, vcc_lo1926; GFX10-NEXT: v_cndmask_b32_e64 v2, v16, 0, s41927; GFX10-NEXT: v_cndmask_b32_e64 v3, v17, 0x7ff80000, s41928; GFX10-NEXT: v_cndmask_b32_e64 v4, v18, 0, s51929; GFX10-NEXT: v_cndmask_b32_e64 v5, v19, 0x7ff80000, s51930; GFX10-NEXT: v_cndmask_b32_e64 v6, v20, 0, s61931; GFX10-NEXT: v_cndmask_b32_e64 v7, v21, 0x7ff80000, s61932; GFX10-NEXT: v_cndmask_b32_e64 v8, v22, 0, s71933; GFX10-NEXT: v_cndmask_b32_e64 v9, v23, 0x7ff80000, s71934; GFX10-NEXT: v_cndmask_b32_e64 v10, v24, 0, s81935; GFX10-NEXT: v_cndmask_b32_e64 v11, v25, 0x7ff80000, s81936; GFX10-NEXT: v_cndmask_b32_e64 v12, v26, 0, s91937; GFX10-NEXT: v_cndmask_b32_e64 v13, v27, 0x7ff80000, s91938; GFX10-NEXT: s_waitcnt vmcnt(0)1939; GFX10-NEXT: v_max_f64 v[28:29], v[14:15], v[30:31]1940; GFX10-NEXT: v_cmp_u_f64_e64 s10, v[14:15], v[30:31]1941; GFX10-NEXT: v_cndmask_b32_e64 v14, v28, 0, s101942; GFX10-NEXT: v_cndmask_b32_e64 v15, v29, 0x7ff80000, s101943; GFX10-NEXT: s_setpc_b64 s[30:31]1944;1945; GFX11-LABEL: v_maximum_v8f64:1946; GFX11: ; %bb.0:1947; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1948; GFX11-NEXT: scratch_load_b32 v31, off, s321949; GFX11-NEXT: v_max_f64 v[32:33], v[0:1], v[16:17]1950; GFX11-NEXT: v_cmp_u_f64_e32 vcc_lo, v[0:1], v[16:17]1951; GFX11-NEXT: v_max_f64 v[16:17], v[2:3], v[18:19]1952; GFX11-NEXT: v_cmp_u_f64_e64 s0, v[2:3], v[18:19]1953; GFX11-NEXT: v_max_f64 v[18:19], v[4:5], v[20:21]1954; GFX11-NEXT: v_cmp_u_f64_e64 s1, v[4:5], v[20:21]1955; GFX11-NEXT: v_max_f64 v[20:21], v[6:7], v[22:23]1956; GFX11-NEXT: v_cmp_u_f64_e64 s2, v[6:7], v[22:23]1957; GFX11-NEXT: v_max_f64 v[22:23], v[8:9], v[24:25]1958; GFX11-NEXT: v_cmp_u_f64_e64 s3, v[8:9], v[24:25]1959; GFX11-NEXT: v_max_f64 v[24:25], v[10:11], v[26:27]1960; GFX11-NEXT: v_cmp_u_f64_e64 s4, v[10:11], v[26:27]1961; GFX11-NEXT: v_max_f64 v[26:27], v[12:13], v[28:29]1962; GFX11-NEXT: v_cmp_u_f64_e64 s5, v[12:13], v[28:29]1963; GFX11-NEXT: v_cndmask_b32_e64 v0, v32, 0, vcc_lo1964; GFX11-NEXT: v_cndmask_b32_e64 v1, v33, 0x7ff80000, vcc_lo1965; GFX11-NEXT: v_cndmask_b32_e64 v2, v16, 0, s01966; GFX11-NEXT: v_cndmask_b32_e64 v3, v17, 0x7ff80000, s01967; GFX11-NEXT: v_cndmask_b32_e64 v4, v18, 0, s11968; GFX11-NEXT: v_cndmask_b32_e64 v5, v19, 0x7ff80000, s11969; GFX11-NEXT: v_cndmask_b32_e64 v6, v20, 0, s21970; GFX11-NEXT: v_cndmask_b32_e64 v7, v21, 0x7ff80000, s21971; GFX11-NEXT: v_cndmask_b32_e64 v8, v22, 0, s31972; GFX11-NEXT: v_cndmask_b32_e64 v9, v23, 0x7ff80000, s31973; GFX11-NEXT: v_cndmask_b32_e64 v10, v24, 0, s41974; GFX11-NEXT: v_cndmask_b32_e64 v11, v25, 0x7ff80000, s41975; GFX11-NEXT: v_cndmask_b32_e64 v12, v26, 0, s51976; GFX11-NEXT: v_cndmask_b32_e64 v13, v27, 0x7ff80000, s51977; GFX11-NEXT: s_waitcnt vmcnt(0)1978; GFX11-NEXT: v_max_f64 v[28:29], v[14:15], v[30:31]1979; GFX11-NEXT: v_cmp_u_f64_e64 s6, v[14:15], v[30:31]1980; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_3)1981; GFX11-NEXT: v_cndmask_b32_e64 v14, v28, 0, s61982; GFX11-NEXT: v_cndmask_b32_e64 v15, v29, 0x7ff80000, s61983; GFX11-NEXT: s_setpc_b64 s[30:31]1984;1985; GFX12-LABEL: v_maximum_v8f64:1986; GFX12: ; %bb.0:1987; GFX12-NEXT: s_wait_loadcnt_dscnt 0x01988; GFX12-NEXT: s_wait_expcnt 0x01989; GFX12-NEXT: s_wait_samplecnt 0x01990; GFX12-NEXT: s_wait_bvhcnt 0x01991; GFX12-NEXT: s_wait_kmcnt 0x01992; GFX12-NEXT: scratch_load_b32 v31, off, s321993; GFX12-NEXT: v_maximum_f64 v[0:1], v[0:1], v[16:17]1994; GFX12-NEXT: v_maximum_f64 v[2:3], v[2:3], v[18:19]1995; GFX12-NEXT: v_maximum_f64 v[4:5], v[4:5], v[20:21]1996; GFX12-NEXT: v_maximum_f64 v[6:7], v[6:7], v[22:23]1997; GFX12-NEXT: v_maximum_f64 v[8:9], v[8:9], v[24:25]1998; GFX12-NEXT: v_maximum_f64 v[10:11], v[10:11], v[26:27]1999; GFX12-NEXT: v_maximum_f64 v[12:13], v[12:13], v[28:29]2000; GFX12-NEXT: s_wait_loadcnt 0x02001; GFX12-NEXT: v_maximum_f64 v[14:15], v[14:15], v[30:31]2002; GFX12-NEXT: s_setpc_b64 s[30:31]2003 %op = call <8 x double> @llvm.maximum.v8f64(<8 x double> %src0, <8 x double> %src1)2004 ret <8 x double> %op2005}2006 2007define <16 x double> @v_maximum_v16f64(<16 x double> %src0, <16 x double> %src1) {2008; GFX7-LABEL: v_maximum_v16f64:2009; GFX7: ; %bb.0:2010; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2011; GFX7-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:82012; GFX7-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:42013; GFX7-NEXT: s_waitcnt vmcnt(0)2014; GFX7-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[31:32]2015; GFX7-NEXT: v_max_f64 v[0:1], v[0:1], v[31:32]2016; GFX7-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:162017; GFX7-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:122018; GFX7-NEXT: v_cndmask_b32_e64 v0, v0, 0, vcc2019; GFX7-NEXT: s_waitcnt vmcnt(0)2020; GFX7-NEXT: v_cmp_u_f64_e64 s[4:5], v[2:3], v[31:32]2021; GFX7-NEXT: v_max_f64 v[2:3], v[2:3], v[31:32]2022; GFX7-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:242023; GFX7-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:202024; GFX7-NEXT: v_cndmask_b32_e64 v2, v2, 0, s[4:5]2025; GFX7-NEXT: s_waitcnt vmcnt(0)2026; GFX7-NEXT: v_cmp_u_f64_e64 s[6:7], v[4:5], v[31:32]2027; GFX7-NEXT: v_max_f64 v[4:5], v[4:5], v[31:32]2028; GFX7-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:322029; GFX7-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:282030; GFX7-NEXT: v_cndmask_b32_e64 v4, v4, 0, s[6:7]2031; GFX7-NEXT: s_waitcnt vmcnt(0)2032; GFX7-NEXT: v_cmp_u_f64_e64 s[8:9], v[6:7], v[31:32]2033; GFX7-NEXT: v_max_f64 v[6:7], v[6:7], v[31:32]2034; GFX7-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:362035; GFX7-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:402036; GFX7-NEXT: v_cndmask_b32_e64 v6, v6, 0, s[8:9]2037; GFX7-NEXT: s_waitcnt vmcnt(0)2038; GFX7-NEXT: v_cmp_u_f64_e64 s[10:11], v[8:9], v[31:32]2039; GFX7-NEXT: v_max_f64 v[8:9], v[8:9], v[31:32]2040; GFX7-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:482041; GFX7-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:442042; GFX7-NEXT: v_cndmask_b32_e64 v8, v8, 0, s[10:11]2043; GFX7-NEXT: s_waitcnt vmcnt(0)2044; GFX7-NEXT: v_cmp_u_f64_e64 s[12:13], v[10:11], v[31:32]2045; GFX7-NEXT: v_max_f64 v[10:11], v[10:11], v[31:32]2046; GFX7-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:562047; GFX7-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:522048; GFX7-NEXT: v_cndmask_b32_e64 v10, v10, 0, s[12:13]2049; GFX7-NEXT: s_waitcnt vmcnt(0)2050; GFX7-NEXT: v_cmp_u_f64_e64 s[14:15], v[12:13], v[31:32]2051; GFX7-NEXT: v_max_f64 v[12:13], v[12:13], v[31:32]2052; GFX7-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:642053; GFX7-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:602054; GFX7-NEXT: v_cndmask_b32_e64 v12, v12, 0, s[14:15]2055; GFX7-NEXT: s_waitcnt vmcnt(0)2056; GFX7-NEXT: v_cmp_u_f64_e64 s[16:17], v[14:15], v[31:32]2057; GFX7-NEXT: v_max_f64 v[14:15], v[14:15], v[31:32]2058; GFX7-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:682059; GFX7-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:722060; GFX7-NEXT: v_cndmask_b32_e64 v14, v14, 0, s[16:17]2061; GFX7-NEXT: s_waitcnt vmcnt(0)2062; GFX7-NEXT: v_cmp_u_f64_e64 s[18:19], v[16:17], v[31:32]2063; GFX7-NEXT: v_max_f64 v[16:17], v[16:17], v[31:32]2064; GFX7-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:802065; GFX7-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:762066; GFX7-NEXT: v_cndmask_b32_e64 v16, v16, 0, s[18:19]2067; GFX7-NEXT: s_waitcnt vmcnt(0)2068; GFX7-NEXT: v_cmp_u_f64_e64 s[20:21], v[18:19], v[31:32]2069; GFX7-NEXT: v_max_f64 v[18:19], v[18:19], v[31:32]2070; GFX7-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:882071; GFX7-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:842072; GFX7-NEXT: v_cndmask_b32_e64 v18, v18, 0, s[20:21]2073; GFX7-NEXT: s_waitcnt vmcnt(0)2074; GFX7-NEXT: v_cmp_u_f64_e64 s[22:23], v[20:21], v[31:32]2075; GFX7-NEXT: v_max_f64 v[20:21], v[20:21], v[31:32]2076; GFX7-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:962077; GFX7-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:922078; GFX7-NEXT: v_cndmask_b32_e64 v20, v20, 0, s[22:23]2079; GFX7-NEXT: s_waitcnt vmcnt(0)2080; GFX7-NEXT: v_cmp_u_f64_e64 s[24:25], v[22:23], v[31:32]2081; GFX7-NEXT: v_max_f64 v[22:23], v[22:23], v[31:32]2082; GFX7-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:1002083; GFX7-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:1042084; GFX7-NEXT: v_cndmask_b32_e64 v22, v22, 0, s[24:25]2085; GFX7-NEXT: s_waitcnt vmcnt(0)2086; GFX7-NEXT: v_cmp_u_f64_e64 s[26:27], v[24:25], v[31:32]2087; GFX7-NEXT: v_max_f64 v[24:25], v[24:25], v[31:32]2088; GFX7-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:1122089; GFX7-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:1082090; GFX7-NEXT: v_cndmask_b32_e64 v24, v24, 0, s[26:27]2091; GFX7-NEXT: s_waitcnt vmcnt(0)2092; GFX7-NEXT: v_cmp_u_f64_e64 s[28:29], v[26:27], v[31:32]2093; GFX7-NEXT: v_max_f64 v[26:27], v[26:27], v[31:32]2094; GFX7-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:1202095; GFX7-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:1162096; GFX7-NEXT: v_cndmask_b32_e64 v26, v26, 0, s[28:29]2097; GFX7-NEXT: s_waitcnt vmcnt(0)2098; GFX7-NEXT: v_cmp_u_f64_e64 s[40:41], v[28:29], v[31:32]2099; GFX7-NEXT: v_max_f64 v[28:29], v[28:29], v[31:32]2100; GFX7-NEXT: buffer_load_dword v31, off, s[0:3], s322101; GFX7-NEXT: buffer_load_dword v33, off, s[0:3], s32 offset:1282102; GFX7-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:1242103; GFX7-NEXT: v_cndmask_b32_e64 v28, v28, 0, s[40:41]2104; GFX7-NEXT: s_waitcnt vmcnt(0)2105; GFX7-NEXT: v_cmp_u_f64_e64 s[42:43], v[30:31], v[32:33]2106; GFX7-NEXT: v_max_f64 v[30:31], v[30:31], v[32:33]2107; GFX7-NEXT: v_mov_b32_e32 v32, 0x7ff800002108; GFX7-NEXT: v_cndmask_b32_e32 v1, v1, v32, vcc2109; GFX7-NEXT: v_cndmask_b32_e64 v3, v3, v32, s[4:5]2110; GFX7-NEXT: v_cndmask_b32_e64 v5, v5, v32, s[6:7]2111; GFX7-NEXT: v_cndmask_b32_e64 v7, v7, v32, s[8:9]2112; GFX7-NEXT: v_cndmask_b32_e64 v9, v9, v32, s[10:11]2113; GFX7-NEXT: v_cndmask_b32_e64 v11, v11, v32, s[12:13]2114; GFX7-NEXT: v_cndmask_b32_e64 v13, v13, v32, s[14:15]2115; GFX7-NEXT: v_cndmask_b32_e64 v15, v15, v32, s[16:17]2116; GFX7-NEXT: v_cndmask_b32_e64 v17, v17, v32, s[18:19]2117; GFX7-NEXT: v_cndmask_b32_e64 v19, v19, v32, s[20:21]2118; GFX7-NEXT: v_cndmask_b32_e64 v21, v21, v32, s[22:23]2119; GFX7-NEXT: v_cndmask_b32_e64 v23, v23, v32, s[24:25]2120; GFX7-NEXT: v_cndmask_b32_e64 v25, v25, v32, s[26:27]2121; GFX7-NEXT: v_cndmask_b32_e64 v27, v27, v32, s[28:29]2122; GFX7-NEXT: v_cndmask_b32_e64 v29, v29, v32, s[40:41]2123; GFX7-NEXT: v_cndmask_b32_e64 v31, v31, v32, s[42:43]2124; GFX7-NEXT: v_cndmask_b32_e64 v30, v30, 0, s[42:43]2125; GFX7-NEXT: s_setpc_b64 s[30:31]2126;2127; GFX8-LABEL: v_maximum_v16f64:2128; GFX8: ; %bb.0:2129; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2130; GFX8-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:82131; GFX8-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:42132; GFX8-NEXT: s_waitcnt vmcnt(0)2133; GFX8-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[31:32]2134; GFX8-NEXT: v_max_f64 v[0:1], v[0:1], v[31:32]2135; GFX8-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:162136; GFX8-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:122137; GFX8-NEXT: v_cndmask_b32_e64 v0, v0, 0, vcc2138; GFX8-NEXT: s_waitcnt vmcnt(0)2139; GFX8-NEXT: v_cmp_u_f64_e64 s[4:5], v[2:3], v[31:32]2140; GFX8-NEXT: v_max_f64 v[2:3], v[2:3], v[31:32]2141; GFX8-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:242142; GFX8-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:202143; GFX8-NEXT: v_cndmask_b32_e64 v2, v2, 0, s[4:5]2144; GFX8-NEXT: s_waitcnt vmcnt(0)2145; GFX8-NEXT: v_cmp_u_f64_e64 s[6:7], v[4:5], v[31:32]2146; GFX8-NEXT: v_max_f64 v[4:5], v[4:5], v[31:32]2147; GFX8-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:322148; GFX8-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:282149; GFX8-NEXT: v_cndmask_b32_e64 v4, v4, 0, s[6:7]2150; GFX8-NEXT: s_waitcnt vmcnt(0)2151; GFX8-NEXT: v_cmp_u_f64_e64 s[8:9], v[6:7], v[31:32]2152; GFX8-NEXT: v_max_f64 v[6:7], v[6:7], v[31:32]2153; GFX8-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:362154; GFX8-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:402155; GFX8-NEXT: v_cndmask_b32_e64 v6, v6, 0, s[8:9]2156; GFX8-NEXT: s_waitcnt vmcnt(0)2157; GFX8-NEXT: v_cmp_u_f64_e64 s[10:11], v[8:9], v[31:32]2158; GFX8-NEXT: v_max_f64 v[8:9], v[8:9], v[31:32]2159; GFX8-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:482160; GFX8-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:442161; GFX8-NEXT: v_cndmask_b32_e64 v8, v8, 0, s[10:11]2162; GFX8-NEXT: s_waitcnt vmcnt(0)2163; GFX8-NEXT: v_cmp_u_f64_e64 s[12:13], v[10:11], v[31:32]2164; GFX8-NEXT: v_max_f64 v[10:11], v[10:11], v[31:32]2165; GFX8-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:562166; GFX8-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:522167; GFX8-NEXT: v_cndmask_b32_e64 v10, v10, 0, s[12:13]2168; GFX8-NEXT: s_waitcnt vmcnt(0)2169; GFX8-NEXT: v_cmp_u_f64_e64 s[14:15], v[12:13], v[31:32]2170; GFX8-NEXT: v_max_f64 v[12:13], v[12:13], v[31:32]2171; GFX8-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:642172; GFX8-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:602173; GFX8-NEXT: v_cndmask_b32_e64 v12, v12, 0, s[14:15]2174; GFX8-NEXT: s_waitcnt vmcnt(0)2175; GFX8-NEXT: v_cmp_u_f64_e64 s[16:17], v[14:15], v[31:32]2176; GFX8-NEXT: v_max_f64 v[14:15], v[14:15], v[31:32]2177; GFX8-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:682178; GFX8-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:722179; GFX8-NEXT: v_cndmask_b32_e64 v14, v14, 0, s[16:17]2180; GFX8-NEXT: s_waitcnt vmcnt(0)2181; GFX8-NEXT: v_cmp_u_f64_e64 s[18:19], v[16:17], v[31:32]2182; GFX8-NEXT: v_max_f64 v[16:17], v[16:17], v[31:32]2183; GFX8-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:802184; GFX8-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:762185; GFX8-NEXT: v_cndmask_b32_e64 v16, v16, 0, s[18:19]2186; GFX8-NEXT: s_waitcnt vmcnt(0)2187; GFX8-NEXT: v_cmp_u_f64_e64 s[20:21], v[18:19], v[31:32]2188; GFX8-NEXT: v_max_f64 v[18:19], v[18:19], v[31:32]2189; GFX8-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:882190; GFX8-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:842191; GFX8-NEXT: v_cndmask_b32_e64 v18, v18, 0, s[20:21]2192; GFX8-NEXT: s_waitcnt vmcnt(0)2193; GFX8-NEXT: v_cmp_u_f64_e64 s[22:23], v[20:21], v[31:32]2194; GFX8-NEXT: v_max_f64 v[20:21], v[20:21], v[31:32]2195; GFX8-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:962196; GFX8-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:922197; GFX8-NEXT: v_cndmask_b32_e64 v20, v20, 0, s[22:23]2198; GFX8-NEXT: s_waitcnt vmcnt(0)2199; GFX8-NEXT: v_cmp_u_f64_e64 s[24:25], v[22:23], v[31:32]2200; GFX8-NEXT: v_max_f64 v[22:23], v[22:23], v[31:32]2201; GFX8-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:1002202; GFX8-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:1042203; GFX8-NEXT: v_cndmask_b32_e64 v22, v22, 0, s[24:25]2204; GFX8-NEXT: s_waitcnt vmcnt(0)2205; GFX8-NEXT: v_cmp_u_f64_e64 s[26:27], v[24:25], v[31:32]2206; GFX8-NEXT: v_max_f64 v[24:25], v[24:25], v[31:32]2207; GFX8-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:1122208; GFX8-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:1082209; GFX8-NEXT: v_cndmask_b32_e64 v24, v24, 0, s[26:27]2210; GFX8-NEXT: s_waitcnt vmcnt(0)2211; GFX8-NEXT: v_cmp_u_f64_e64 s[28:29], v[26:27], v[31:32]2212; GFX8-NEXT: v_max_f64 v[26:27], v[26:27], v[31:32]2213; GFX8-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:1202214; GFX8-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:1162215; GFX8-NEXT: v_cndmask_b32_e64 v26, v26, 0, s[28:29]2216; GFX8-NEXT: s_waitcnt vmcnt(0)2217; GFX8-NEXT: v_cmp_u_f64_e64 s[40:41], v[28:29], v[31:32]2218; GFX8-NEXT: v_max_f64 v[28:29], v[28:29], v[31:32]2219; GFX8-NEXT: buffer_load_dword v31, off, s[0:3], s322220; GFX8-NEXT: buffer_load_dword v33, off, s[0:3], s32 offset:1282221; GFX8-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:1242222; GFX8-NEXT: v_cndmask_b32_e64 v28, v28, 0, s[40:41]2223; GFX8-NEXT: s_waitcnt vmcnt(0)2224; GFX8-NEXT: v_cmp_u_f64_e64 s[42:43], v[30:31], v[32:33]2225; GFX8-NEXT: v_max_f64 v[30:31], v[30:31], v[32:33]2226; GFX8-NEXT: v_mov_b32_e32 v32, 0x7ff800002227; GFX8-NEXT: v_cndmask_b32_e32 v1, v1, v32, vcc2228; GFX8-NEXT: v_cndmask_b32_e64 v3, v3, v32, s[4:5]2229; GFX8-NEXT: v_cndmask_b32_e64 v5, v5, v32, s[6:7]2230; GFX8-NEXT: v_cndmask_b32_e64 v7, v7, v32, s[8:9]2231; GFX8-NEXT: v_cndmask_b32_e64 v9, v9, v32, s[10:11]2232; GFX8-NEXT: v_cndmask_b32_e64 v11, v11, v32, s[12:13]2233; GFX8-NEXT: v_cndmask_b32_e64 v13, v13, v32, s[14:15]2234; GFX8-NEXT: v_cndmask_b32_e64 v15, v15, v32, s[16:17]2235; GFX8-NEXT: v_cndmask_b32_e64 v17, v17, v32, s[18:19]2236; GFX8-NEXT: v_cndmask_b32_e64 v19, v19, v32, s[20:21]2237; GFX8-NEXT: v_cndmask_b32_e64 v21, v21, v32, s[22:23]2238; GFX8-NEXT: v_cndmask_b32_e64 v23, v23, v32, s[24:25]2239; GFX8-NEXT: v_cndmask_b32_e64 v25, v25, v32, s[26:27]2240; GFX8-NEXT: v_cndmask_b32_e64 v27, v27, v32, s[28:29]2241; GFX8-NEXT: v_cndmask_b32_e64 v29, v29, v32, s[40:41]2242; GFX8-NEXT: v_cndmask_b32_e64 v31, v31, v32, s[42:43]2243; GFX8-NEXT: v_cndmask_b32_e64 v30, v30, 0, s[42:43]2244; GFX8-NEXT: s_setpc_b64 s[30:31]2245;2246; GFX900-LABEL: v_maximum_v16f64:2247; GFX900: ; %bb.0:2248; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2249; GFX900-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:82250; GFX900-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:42251; GFX900-NEXT: s_waitcnt vmcnt(0)2252; GFX900-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[31:32]2253; GFX900-NEXT: v_max_f64 v[0:1], v[0:1], v[31:32]2254; GFX900-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:162255; GFX900-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:122256; GFX900-NEXT: v_cndmask_b32_e64 v0, v0, 0, vcc2257; GFX900-NEXT: s_waitcnt vmcnt(0)2258; GFX900-NEXT: v_cmp_u_f64_e64 s[4:5], v[2:3], v[31:32]2259; GFX900-NEXT: v_max_f64 v[2:3], v[2:3], v[31:32]2260; GFX900-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:242261; GFX900-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:202262; GFX900-NEXT: v_cndmask_b32_e64 v2, v2, 0, s[4:5]2263; GFX900-NEXT: s_waitcnt vmcnt(0)2264; GFX900-NEXT: v_cmp_u_f64_e64 s[6:7], v[4:5], v[31:32]2265; GFX900-NEXT: v_max_f64 v[4:5], v[4:5], v[31:32]2266; GFX900-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:322267; GFX900-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:282268; GFX900-NEXT: v_cndmask_b32_e64 v4, v4, 0, s[6:7]2269; GFX900-NEXT: s_waitcnt vmcnt(0)2270; GFX900-NEXT: v_cmp_u_f64_e64 s[8:9], v[6:7], v[31:32]2271; GFX900-NEXT: v_max_f64 v[6:7], v[6:7], v[31:32]2272; GFX900-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:362273; GFX900-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:402274; GFX900-NEXT: v_cndmask_b32_e64 v6, v6, 0, s[8:9]2275; GFX900-NEXT: s_waitcnt vmcnt(0)2276; GFX900-NEXT: v_cmp_u_f64_e64 s[10:11], v[8:9], v[31:32]2277; GFX900-NEXT: v_max_f64 v[8:9], v[8:9], v[31:32]2278; GFX900-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:482279; GFX900-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:442280; GFX900-NEXT: v_cndmask_b32_e64 v8, v8, 0, s[10:11]2281; GFX900-NEXT: s_waitcnt vmcnt(0)2282; GFX900-NEXT: v_cmp_u_f64_e64 s[12:13], v[10:11], v[31:32]2283; GFX900-NEXT: v_max_f64 v[10:11], v[10:11], v[31:32]2284; GFX900-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:562285; GFX900-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:522286; GFX900-NEXT: v_cndmask_b32_e64 v10, v10, 0, s[12:13]2287; GFX900-NEXT: s_waitcnt vmcnt(0)2288; GFX900-NEXT: v_cmp_u_f64_e64 s[14:15], v[12:13], v[31:32]2289; GFX900-NEXT: v_max_f64 v[12:13], v[12:13], v[31:32]2290; GFX900-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:642291; GFX900-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:602292; GFX900-NEXT: v_cndmask_b32_e64 v12, v12, 0, s[14:15]2293; GFX900-NEXT: s_waitcnt vmcnt(0)2294; GFX900-NEXT: v_cmp_u_f64_e64 s[16:17], v[14:15], v[31:32]2295; GFX900-NEXT: v_max_f64 v[14:15], v[14:15], v[31:32]2296; GFX900-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:682297; GFX900-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:722298; GFX900-NEXT: v_cndmask_b32_e64 v14, v14, 0, s[16:17]2299; GFX900-NEXT: s_waitcnt vmcnt(0)2300; GFX900-NEXT: v_cmp_u_f64_e64 s[18:19], v[16:17], v[31:32]2301; GFX900-NEXT: v_max_f64 v[16:17], v[16:17], v[31:32]2302; GFX900-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:802303; GFX900-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:762304; GFX900-NEXT: v_cndmask_b32_e64 v16, v16, 0, s[18:19]2305; GFX900-NEXT: s_waitcnt vmcnt(0)2306; GFX900-NEXT: v_cmp_u_f64_e64 s[20:21], v[18:19], v[31:32]2307; GFX900-NEXT: v_max_f64 v[18:19], v[18:19], v[31:32]2308; GFX900-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:882309; GFX900-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:842310; GFX900-NEXT: v_cndmask_b32_e64 v18, v18, 0, s[20:21]2311; GFX900-NEXT: s_waitcnt vmcnt(0)2312; GFX900-NEXT: v_cmp_u_f64_e64 s[22:23], v[20:21], v[31:32]2313; GFX900-NEXT: v_max_f64 v[20:21], v[20:21], v[31:32]2314; GFX900-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:962315; GFX900-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:922316; GFX900-NEXT: v_cndmask_b32_e64 v20, v20, 0, s[22:23]2317; GFX900-NEXT: s_waitcnt vmcnt(0)2318; GFX900-NEXT: v_cmp_u_f64_e64 s[24:25], v[22:23], v[31:32]2319; GFX900-NEXT: v_max_f64 v[22:23], v[22:23], v[31:32]2320; GFX900-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:1002321; GFX900-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:1042322; GFX900-NEXT: v_cndmask_b32_e64 v22, v22, 0, s[24:25]2323; GFX900-NEXT: s_waitcnt vmcnt(0)2324; GFX900-NEXT: v_cmp_u_f64_e64 s[26:27], v[24:25], v[31:32]2325; GFX900-NEXT: v_max_f64 v[24:25], v[24:25], v[31:32]2326; GFX900-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:1122327; GFX900-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:1082328; GFX900-NEXT: v_cndmask_b32_e64 v24, v24, 0, s[26:27]2329; GFX900-NEXT: s_waitcnt vmcnt(0)2330; GFX900-NEXT: v_cmp_u_f64_e64 s[28:29], v[26:27], v[31:32]2331; GFX900-NEXT: v_max_f64 v[26:27], v[26:27], v[31:32]2332; GFX900-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:1202333; GFX900-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:1162334; GFX900-NEXT: v_cndmask_b32_e64 v26, v26, 0, s[28:29]2335; GFX900-NEXT: s_waitcnt vmcnt(0)2336; GFX900-NEXT: v_cmp_u_f64_e64 s[40:41], v[28:29], v[31:32]2337; GFX900-NEXT: v_max_f64 v[28:29], v[28:29], v[31:32]2338; GFX900-NEXT: buffer_load_dword v31, off, s[0:3], s322339; GFX900-NEXT: buffer_load_dword v33, off, s[0:3], s32 offset:1282340; GFX900-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:1242341; GFX900-NEXT: v_cndmask_b32_e64 v28, v28, 0, s[40:41]2342; GFX900-NEXT: s_waitcnt vmcnt(0)2343; GFX900-NEXT: v_cmp_u_f64_e64 s[42:43], v[30:31], v[32:33]2344; GFX900-NEXT: v_max_f64 v[30:31], v[30:31], v[32:33]2345; GFX900-NEXT: v_mov_b32_e32 v32, 0x7ff800002346; GFX900-NEXT: v_cndmask_b32_e32 v1, v1, v32, vcc2347; GFX900-NEXT: v_cndmask_b32_e64 v3, v3, v32, s[4:5]2348; GFX900-NEXT: v_cndmask_b32_e64 v5, v5, v32, s[6:7]2349; GFX900-NEXT: v_cndmask_b32_e64 v7, v7, v32, s[8:9]2350; GFX900-NEXT: v_cndmask_b32_e64 v9, v9, v32, s[10:11]2351; GFX900-NEXT: v_cndmask_b32_e64 v11, v11, v32, s[12:13]2352; GFX900-NEXT: v_cndmask_b32_e64 v13, v13, v32, s[14:15]2353; GFX900-NEXT: v_cndmask_b32_e64 v15, v15, v32, s[16:17]2354; GFX900-NEXT: v_cndmask_b32_e64 v17, v17, v32, s[18:19]2355; GFX900-NEXT: v_cndmask_b32_e64 v19, v19, v32, s[20:21]2356; GFX900-NEXT: v_cndmask_b32_e64 v21, v21, v32, s[22:23]2357; GFX900-NEXT: v_cndmask_b32_e64 v23, v23, v32, s[24:25]2358; GFX900-NEXT: v_cndmask_b32_e64 v25, v25, v32, s[26:27]2359; GFX900-NEXT: v_cndmask_b32_e64 v27, v27, v32, s[28:29]2360; GFX900-NEXT: v_cndmask_b32_e64 v29, v29, v32, s[40:41]2361; GFX900-NEXT: v_cndmask_b32_e64 v31, v31, v32, s[42:43]2362; GFX900-NEXT: v_cndmask_b32_e64 v30, v30, 0, s[42:43]2363; GFX900-NEXT: s_setpc_b64 s[30:31]2364;2365; GFX950-LABEL: v_maximum_v16f64:2366; GFX950: ; %bb.0:2367; GFX950-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2368; GFX950-NEXT: v_accvgpr_write_b32 a0, v40 ; Reload Reuse2369; GFX950-NEXT: v_accvgpr_write_b32 a1, v41 ; Reload Reuse2370; GFX950-NEXT: v_accvgpr_write_b32 a2, v42 ; Reload Reuse2371; GFX950-NEXT: v_accvgpr_write_b32 a3, v43 ; Reload Reuse2372; GFX950-NEXT: v_accvgpr_write_b32 a4, v44 ; Reload Reuse2373; GFX950-NEXT: v_accvgpr_write_b32 a5, v45 ; Reload Reuse2374; GFX950-NEXT: v_accvgpr_write_b32 a6, v46 ; Reload Reuse2375; GFX950-NEXT: v_accvgpr_write_b32 a7, v47 ; Reload Reuse2376; GFX950-NEXT: v_accvgpr_write_b32 a8, v56 ; Reload Reuse2377; GFX950-NEXT: v_accvgpr_write_b32 a9, v57 ; Reload Reuse2378; GFX950-NEXT: scratch_load_dword v35, off, s32 offset:82379; GFX950-NEXT: scratch_load_dword v34, off, s32 offset:42380; GFX950-NEXT: scratch_load_dword v37, off, s32 offset:162381; GFX950-NEXT: scratch_load_dword v36, off, s32 offset:122382; GFX950-NEXT: scratch_load_dword v39, off, s32 offset:242383; GFX950-NEXT: scratch_load_dword v38, off, s32 offset:202384; GFX950-NEXT: scratch_load_dword v57, off, s32 offset:322385; GFX950-NEXT: scratch_load_dword v56, off, s32 offset:282386; GFX950-NEXT: scratch_load_dword v47, off, s32 offset:402387; GFX950-NEXT: scratch_load_dword v46, off, s32 offset:362388; GFX950-NEXT: scratch_load_dword v45, off, s32 offset:482389; GFX950-NEXT: scratch_load_dword v44, off, s32 offset:442390; GFX950-NEXT: scratch_load_dword v43, off, s32 offset:562391; GFX950-NEXT: scratch_load_dword v42, off, s32 offset:522392; GFX950-NEXT: scratch_load_dword v41, off, s32 offset:642393; GFX950-NEXT: scratch_load_dword v40, off, s32 offset:602394; GFX950-NEXT: scratch_load_dword v55, off, s32 offset:722395; GFX950-NEXT: scratch_load_dword v54, off, s32 offset:682396; GFX950-NEXT: scratch_load_dword v53, off, s32 offset:802397; GFX950-NEXT: scratch_load_dword v52, off, s32 offset:762398; GFX950-NEXT: scratch_load_dword v51, off, s32 offset:882399; GFX950-NEXT: scratch_load_dword v50, off, s32 offset:842400; GFX950-NEXT: scratch_load_dword v49, off, s32 offset:962401; GFX950-NEXT: scratch_load_dword v48, off, s32 offset:922402; GFX950-NEXT: scratch_load_dword v31, off, s322403; GFX950-NEXT: scratch_load_dword v33, off, s32 offset:1042404; GFX950-NEXT: scratch_load_dword v32, off, s32 offset:1002405; GFX950-NEXT: v_accvgpr_write_b32 a10, v58 ; Reload Reuse2406; GFX950-NEXT: v_accvgpr_write_b32 a11, v59 ; Reload Reuse2407; GFX950-NEXT: v_accvgpr_write_b32 a12, v60 ; Reload Reuse2408; GFX950-NEXT: v_accvgpr_write_b32 a13, v61 ; Reload Reuse2409; GFX950-NEXT: v_accvgpr_write_b32 a14, v62 ; Reload Reuse2410; GFX950-NEXT: v_accvgpr_write_b32 a15, v63 ; Reload Reuse2411; GFX950-NEXT: s_waitcnt vmcnt(25)2412; GFX950-NEXT: v_max_f64 v[58:59], v[0:1], v[34:35]2413; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[34:35]2414; GFX950-NEXT: scratch_load_dword v35, off, s32 offset:1122415; GFX950-NEXT: scratch_load_dword v34, off, s32 offset:1082416; GFX950-NEXT: s_waitcnt vmcnt(25)2417; GFX950-NEXT: v_max_f64 v[60:61], v[2:3], v[36:37]2418; GFX950-NEXT: v_cmp_u_f64_e64 s[0:1], v[2:3], v[36:37]2419; GFX950-NEXT: scratch_load_dword v37, off, s32 offset:1202420; GFX950-NEXT: scratch_load_dword v36, off, s32 offset:1162421; GFX950-NEXT: s_waitcnt vmcnt(25)2422; GFX950-NEXT: v_max_f64 v[62:63], v[4:5], v[38:39]2423; GFX950-NEXT: v_cmp_u_f64_e64 s[2:3], v[4:5], v[38:39]2424; GFX950-NEXT: scratch_load_dword v39, off, s32 offset:1282425; GFX950-NEXT: scratch_load_dword v38, off, s32 offset:1242426; GFX950-NEXT: v_mov_b32_e32 v2, 0x7ff800002427; GFX950-NEXT: s_waitcnt vmcnt(25)2428; GFX950-NEXT: v_max_f64 v[0:1], v[6:7], v[56:57]2429; GFX950-NEXT: v_cmp_u_f64_e64 s[4:5], v[6:7], v[56:57]2430; GFX950-NEXT: s_waitcnt vmcnt(23)2431; GFX950-NEXT: v_max_f64 v[56:57], v[8:9], v[46:47]2432; GFX950-NEXT: v_cndmask_b32_e64 v58, v58, 0, vcc2433; GFX950-NEXT: v_cndmask_b32_e32 v59, v59, v2, vcc2434; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[8:9], v[46:47]2435; GFX950-NEXT: v_cndmask_b32_e64 v6, v0, 0, s[4:5]2436; GFX950-NEXT: v_cndmask_b32_e64 v7, v1, v2, s[4:5]2437; GFX950-NEXT: v_cndmask_b32_e64 v8, v56, 0, vcc2438; GFX950-NEXT: v_cndmask_b32_e32 v9, v57, v2, vcc2439; GFX950-NEXT: s_waitcnt vmcnt(21)2440; GFX950-NEXT: v_max_f64 v[0:1], v[10:11], v[44:45]2441; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[10:11], v[44:45]2442; GFX950-NEXT: v_cndmask_b32_e64 v60, v60, 0, s[0:1]2443; GFX950-NEXT: v_cndmask_b32_e64 v3, v61, v2, s[0:1]2444; GFX950-NEXT: v_cndmask_b32_e64 v10, v0, 0, vcc2445; GFX950-NEXT: v_cndmask_b32_e32 v11, v1, v2, vcc2446; GFX950-NEXT: s_waitcnt vmcnt(19)2447; GFX950-NEXT: v_max_f64 v[0:1], v[12:13], v[42:43]2448; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[12:13], v[42:43]2449; GFX950-NEXT: v_cndmask_b32_e64 v4, v62, 0, s[2:3]2450; GFX950-NEXT: v_cndmask_b32_e64 v5, v63, v2, s[2:3]2451; GFX950-NEXT: v_cndmask_b32_e64 v12, v0, 0, vcc2452; GFX950-NEXT: v_cndmask_b32_e32 v13, v1, v2, vcc2453; GFX950-NEXT: s_waitcnt vmcnt(17)2454; GFX950-NEXT: v_max_f64 v[0:1], v[14:15], v[40:41]2455; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[14:15], v[40:41]2456; GFX950-NEXT: v_accvgpr_read_b32 v63, a15 ; Reload Reuse2457; GFX950-NEXT: v_accvgpr_read_b32 v62, a14 ; Reload Reuse2458; GFX950-NEXT: v_cndmask_b32_e64 v14, v0, 0, vcc2459; GFX950-NEXT: v_cndmask_b32_e32 v15, v1, v2, vcc2460; GFX950-NEXT: s_waitcnt vmcnt(15)2461; GFX950-NEXT: v_max_f64 v[0:1], v[16:17], v[54:55]2462; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[16:17], v[54:55]2463; GFX950-NEXT: v_accvgpr_read_b32 v61, a13 ; Reload Reuse2464; GFX950-NEXT: v_accvgpr_read_b32 v57, a9 ; Reload Reuse2465; GFX950-NEXT: v_cndmask_b32_e64 v16, v0, 0, vcc2466; GFX950-NEXT: v_cndmask_b32_e32 v17, v1, v2, vcc2467; GFX950-NEXT: s_waitcnt vmcnt(13)2468; GFX950-NEXT: v_max_f64 v[0:1], v[18:19], v[52:53]2469; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[18:19], v[52:53]2470; GFX950-NEXT: v_accvgpr_read_b32 v56, a8 ; Reload Reuse2471; GFX950-NEXT: v_accvgpr_read_b32 v47, a7 ; Reload Reuse2472; GFX950-NEXT: v_cndmask_b32_e64 v18, v0, 0, vcc2473; GFX950-NEXT: v_cndmask_b32_e32 v19, v1, v2, vcc2474; GFX950-NEXT: s_waitcnt vmcnt(11)2475; GFX950-NEXT: v_max_f64 v[0:1], v[20:21], v[50:51]2476; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[20:21], v[50:51]2477; GFX950-NEXT: v_accvgpr_read_b32 v46, a6 ; Reload Reuse2478; GFX950-NEXT: v_accvgpr_read_b32 v45, a5 ; Reload Reuse2479; GFX950-NEXT: v_cndmask_b32_e64 v20, v0, 0, vcc2480; GFX950-NEXT: v_cndmask_b32_e32 v21, v1, v2, vcc2481; GFX950-NEXT: s_waitcnt vmcnt(9)2482; GFX950-NEXT: v_max_f64 v[0:1], v[22:23], v[48:49]2483; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[22:23], v[48:49]2484; GFX950-NEXT: v_accvgpr_read_b32 v44, a4 ; Reload Reuse2485; GFX950-NEXT: v_accvgpr_read_b32 v43, a3 ; Reload Reuse2486; GFX950-NEXT: v_cndmask_b32_e64 v22, v0, 0, vcc2487; GFX950-NEXT: v_cndmask_b32_e32 v23, v1, v2, vcc2488; GFX950-NEXT: s_waitcnt vmcnt(6)2489; GFX950-NEXT: v_max_f64 v[0:1], v[24:25], v[32:33]2490; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[24:25], v[32:33]2491; GFX950-NEXT: v_accvgpr_read_b32 v42, a2 ; Reload Reuse2492; GFX950-NEXT: v_accvgpr_read_b32 v41, a1 ; Reload Reuse2493; GFX950-NEXT: v_cndmask_b32_e64 v24, v0, 0, vcc2494; GFX950-NEXT: v_cndmask_b32_e32 v25, v1, v2, vcc2495; GFX950-NEXT: v_accvgpr_read_b32 v40, a0 ; Reload Reuse2496; GFX950-NEXT: s_waitcnt vmcnt(4)2497; GFX950-NEXT: v_max_f64 v[0:1], v[26:27], v[34:35]2498; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[26:27], v[34:35]2499; GFX950-NEXT: s_nop 12500; GFX950-NEXT: v_cndmask_b32_e64 v26, v0, 0, vcc2501; GFX950-NEXT: v_cndmask_b32_e32 v27, v1, v2, vcc2502; GFX950-NEXT: s_waitcnt vmcnt(2)2503; GFX950-NEXT: v_max_f64 v[0:1], v[28:29], v[36:37]2504; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[28:29], v[36:37]2505; GFX950-NEXT: s_nop 12506; GFX950-NEXT: v_cndmask_b32_e64 v28, v0, 0, vcc2507; GFX950-NEXT: v_cndmask_b32_e32 v29, v1, v2, vcc2508; GFX950-NEXT: s_waitcnt vmcnt(0)2509; GFX950-NEXT: v_max_f64 v[0:1], v[30:31], v[38:39]2510; GFX950-NEXT: v_cmp_u_f64_e32 vcc, v[30:31], v[38:39]2511; GFX950-NEXT: s_nop 12512; GFX950-NEXT: v_cndmask_b32_e64 v30, v0, 0, vcc2513; GFX950-NEXT: v_cndmask_b32_e32 v31, v1, v2, vcc2514; GFX950-NEXT: v_mov_b32_e32 v0, v582515; GFX950-NEXT: v_mov_b32_e32 v1, v592516; GFX950-NEXT: v_mov_b32_e32 v2, v602517; GFX950-NEXT: v_accvgpr_read_b32 v60, a12 ; Reload Reuse2518; GFX950-NEXT: v_accvgpr_read_b32 v59, a11 ; Reload Reuse2519; GFX950-NEXT: v_accvgpr_read_b32 v58, a10 ; Reload Reuse2520; GFX950-NEXT: s_setpc_b64 s[30:31]2521;2522; GFX10-LABEL: v_maximum_v16f64:2523; GFX10: ; %bb.0:2524; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2525; GFX10-NEXT: s_clause 0x182526; GFX10-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:42527; GFX10-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:82528; GFX10-NEXT: buffer_load_dword v34, off, s[0:3], s32 offset:162529; GFX10-NEXT: buffer_load_dword v33, off, s[0:3], s32 offset:122530; GFX10-NEXT: buffer_load_dword v36, off, s[0:3], s32 offset:242531; GFX10-NEXT: buffer_load_dword v35, off, s[0:3], s32 offset:202532; GFX10-NEXT: buffer_load_dword v37, off, s[0:3], s32 offset:362533; GFX10-NEXT: buffer_load_dword v49, off, s[0:3], s32 offset:322534; GFX10-NEXT: buffer_load_dword v48, off, s[0:3], s32 offset:282535; GFX10-NEXT: buffer_load_dword v50, off, s[0:3], s32 offset:682536; GFX10-NEXT: buffer_load_dword v53, off, s[0:3], s32 offset:642537; GFX10-NEXT: buffer_load_dword v52, off, s[0:3], s32 offset:602538; GFX10-NEXT: buffer_load_dword v55, off, s[0:3], s32 offset:562539; GFX10-NEXT: buffer_load_dword v54, off, s[0:3], s32 offset:522540; GFX10-NEXT: buffer_load_dword v65, off, s[0:3], s32 offset:482541; GFX10-NEXT: buffer_load_dword v64, off, s[0:3], s32 offset:442542; GFX10-NEXT: buffer_load_dword v38, off, s[0:3], s32 offset:402543; GFX10-NEXT: buffer_load_dword v66, off, s[0:3], s32 offset:1002544; GFX10-NEXT: buffer_load_dword v69, off, s[0:3], s32 offset:962545; GFX10-NEXT: buffer_load_dword v68, off, s[0:3], s32 offset:922546; GFX10-NEXT: buffer_load_dword v71, off, s[0:3], s32 offset:882547; GFX10-NEXT: buffer_load_dword v70, off, s[0:3], s32 offset:842548; GFX10-NEXT: buffer_load_dword v81, off, s[0:3], s32 offset:802549; GFX10-NEXT: buffer_load_dword v80, off, s[0:3], s32 offset:762550; GFX10-NEXT: buffer_load_dword v51, off, s[0:3], s32 offset:722551; GFX10-NEXT: s_waitcnt vmcnt(23)2552; GFX10-NEXT: v_max_f64 v[82:83], v[0:1], v[31:32]2553; GFX10-NEXT: v_cmp_u_f64_e32 vcc_lo, v[0:1], v[31:32]2554; GFX10-NEXT: s_waitcnt vmcnt(21)2555; GFX10-NEXT: v_max_f64 v[84:85], v[2:3], v[33:34]2556; GFX10-NEXT: v_cmp_u_f64_e64 s4, v[2:3], v[33:34]2557; GFX10-NEXT: s_waitcnt vmcnt(19)2558; GFX10-NEXT: v_max_f64 v[32:33], v[4:5], v[35:36]2559; GFX10-NEXT: v_cmp_u_f64_e64 s5, v[4:5], v[35:36]2560; GFX10-NEXT: s_clause 0x72561; GFX10-NEXT: buffer_load_dword v1, off, s[0:3], s32 offset:1122562; GFX10-NEXT: buffer_load_dword v67, off, s[0:3], s32 offset:1042563; GFX10-NEXT: buffer_load_dword v0, off, s[0:3], s32 offset:1082564; GFX10-NEXT: buffer_load_dword v3, off, s[0:3], s32 offset:1202565; GFX10-NEXT: buffer_load_dword v2, off, s[0:3], s32 offset:1162566; GFX10-NEXT: buffer_load_dword v31, off, s[0:3], s322567; GFX10-NEXT: buffer_load_dword v5, off, s[0:3], s32 offset:1282568; GFX10-NEXT: buffer_load_dword v4, off, s[0:3], s32 offset:1242569; GFX10-NEXT: s_waitcnt vmcnt(24)2570; GFX10-NEXT: v_max_f64 v[34:35], v[6:7], v[48:49]2571; GFX10-NEXT: v_cmp_u_f64_e64 s6, v[6:7], v[48:49]2572; GFX10-NEXT: s_waitcnt vmcnt(21)2573; GFX10-NEXT: v_cmp_u_f64_e64 s10, v[14:15], v[52:53]2574; GFX10-NEXT: s_waitcnt vmcnt(19)2575; GFX10-NEXT: v_cmp_u_f64_e64 s9, v[12:13], v[54:55]2576; GFX10-NEXT: s_waitcnt vmcnt(17)2577; GFX10-NEXT: v_cmp_u_f64_e64 s8, v[10:11], v[64:65]2578; GFX10-NEXT: s_waitcnt vmcnt(16)2579; GFX10-NEXT: v_max_f64 v[48:49], v[8:9], v[37:38]2580; GFX10-NEXT: v_cmp_u_f64_e64 s7, v[8:9], v[37:38]2581; GFX10-NEXT: v_max_f64 v[36:37], v[10:11], v[64:65]2582; GFX10-NEXT: v_max_f64 v[38:39], v[12:13], v[54:55]2583; GFX10-NEXT: v_max_f64 v[54:55], v[14:15], v[52:53]2584; GFX10-NEXT: s_waitcnt vmcnt(11)2585; GFX10-NEXT: v_max_f64 v[64:65], v[20:21], v[70:71]2586; GFX10-NEXT: v_cmp_u_f64_e64 s13, v[20:21], v[70:71]2587; GFX10-NEXT: s_waitcnt vmcnt(9)2588; GFX10-NEXT: v_cmp_u_f64_e64 s12, v[18:19], v[80:81]2589; GFX10-NEXT: s_waitcnt vmcnt(8)2590; GFX10-NEXT: v_max_f64 v[52:53], v[16:17], v[50:51]2591; GFX10-NEXT: v_cmp_u_f64_e64 s11, v[16:17], v[50:51]2592; GFX10-NEXT: v_max_f64 v[50:51], v[18:19], v[80:81]2593; GFX10-NEXT: v_max_f64 v[70:71], v[22:23], v[68:69]2594; GFX10-NEXT: v_cmp_u_f64_e64 s14, v[22:23], v[68:69]2595; GFX10-NEXT: v_cndmask_b32_e64 v6, v34, 0, s62596; GFX10-NEXT: v_cndmask_b32_e64 v7, v35, 0x7ff80000, s62597; GFX10-NEXT: v_cndmask_b32_e64 v8, v48, 0, s72598; GFX10-NEXT: v_cndmask_b32_e64 v9, v49, 0x7ff80000, s72599; GFX10-NEXT: v_cndmask_b32_e64 v10, v36, 0, s82600; GFX10-NEXT: v_cndmask_b32_e64 v11, v37, 0x7ff80000, s82601; GFX10-NEXT: v_cndmask_b32_e64 v12, v38, 0, s92602; GFX10-NEXT: v_cndmask_b32_e64 v13, v39, 0x7ff80000, s92603; GFX10-NEXT: v_cndmask_b32_e64 v14, v54, 0, s102604; GFX10-NEXT: v_cndmask_b32_e64 v15, v55, 0x7ff80000, s102605; GFX10-NEXT: v_cndmask_b32_e64 v16, v52, 0, s112606; GFX10-NEXT: v_cndmask_b32_e64 v17, v53, 0x7ff80000, s112607; GFX10-NEXT: v_cndmask_b32_e64 v18, v50, 0, s122608; GFX10-NEXT: v_cndmask_b32_e64 v19, v51, 0x7ff80000, s122609; GFX10-NEXT: v_cndmask_b32_e64 v20, v64, 0, s132610; GFX10-NEXT: v_cndmask_b32_e64 v21, v65, 0x7ff80000, s132611; GFX10-NEXT: v_cndmask_b32_e64 v22, v70, 0, s142612; GFX10-NEXT: v_cndmask_b32_e64 v23, v71, 0x7ff80000, s142613; GFX10-NEXT: s_waitcnt vmcnt(6)2614; GFX10-NEXT: v_max_f64 v[68:69], v[24:25], v[66:67]2615; GFX10-NEXT: v_cmp_u_f64_e64 s15, v[24:25], v[66:67]2616; GFX10-NEXT: s_waitcnt vmcnt(5)2617; GFX10-NEXT: v_max_f64 v[66:67], v[26:27], v[0:1]2618; GFX10-NEXT: v_cmp_u_f64_e64 s16, v[26:27], v[0:1]2619; GFX10-NEXT: s_waitcnt vmcnt(3)2620; GFX10-NEXT: v_max_f64 v[80:81], v[28:29], v[2:3]2621; GFX10-NEXT: v_cmp_u_f64_e64 s17, v[28:29], v[2:3]2622; GFX10-NEXT: s_waitcnt vmcnt(0)2623; GFX10-NEXT: v_max_f64 v[86:87], v[30:31], v[4:5]2624; GFX10-NEXT: v_cmp_u_f64_e64 s18, v[30:31], v[4:5]2625; GFX10-NEXT: v_cndmask_b32_e64 v0, v82, 0, vcc_lo2626; GFX10-NEXT: v_cndmask_b32_e64 v1, v83, 0x7ff80000, vcc_lo2627; GFX10-NEXT: v_cndmask_b32_e64 v2, v84, 0, s42628; GFX10-NEXT: v_cndmask_b32_e64 v3, v85, 0x7ff80000, s42629; GFX10-NEXT: v_cndmask_b32_e64 v4, v32, 0, s52630; GFX10-NEXT: v_cndmask_b32_e64 v5, v33, 0x7ff80000, s52631; GFX10-NEXT: v_cndmask_b32_e64 v24, v68, 0, s152632; GFX10-NEXT: v_cndmask_b32_e64 v25, v69, 0x7ff80000, s152633; GFX10-NEXT: v_cndmask_b32_e64 v26, v66, 0, s162634; GFX10-NEXT: v_cndmask_b32_e64 v27, v67, 0x7ff80000, s162635; GFX10-NEXT: v_cndmask_b32_e64 v28, v80, 0, s172636; GFX10-NEXT: v_cndmask_b32_e64 v29, v81, 0x7ff80000, s172637; GFX10-NEXT: v_cndmask_b32_e64 v30, v86, 0, s182638; GFX10-NEXT: v_cndmask_b32_e64 v31, v87, 0x7ff80000, s182639; GFX10-NEXT: s_setpc_b64 s[30:31]2640;2641; GFX11-LABEL: v_maximum_v16f64:2642; GFX11: ; %bb.0:2643; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2644; GFX11-NEXT: s_clause 0x1f2645; GFX11-NEXT: scratch_load_b32 v31, off, s322646; GFX11-NEXT: scratch_load_b32 v33, off, s32 offset:82647; GFX11-NEXT: scratch_load_b32 v32, off, s32 offset:42648; GFX11-NEXT: scratch_load_b32 v35, off, s32 offset:162649; GFX11-NEXT: scratch_load_b32 v34, off, s32 offset:122650; GFX11-NEXT: scratch_load_b32 v37, off, s32 offset:242651; GFX11-NEXT: scratch_load_b32 v36, off, s32 offset:202652; GFX11-NEXT: scratch_load_b32 v39, off, s32 offset:322653; GFX11-NEXT: scratch_load_b32 v38, off, s32 offset:282654; GFX11-NEXT: scratch_load_b32 v49, off, s32 offset:402655; GFX11-NEXT: scratch_load_b32 v48, off, s32 offset:362656; GFX11-NEXT: scratch_load_b32 v51, off, s32 offset:482657; GFX11-NEXT: scratch_load_b32 v50, off, s32 offset:442658; GFX11-NEXT: scratch_load_b32 v53, off, s32 offset:562659; GFX11-NEXT: scratch_load_b32 v52, off, s32 offset:522660; GFX11-NEXT: scratch_load_b32 v55, off, s32 offset:642661; GFX11-NEXT: scratch_load_b32 v54, off, s32 offset:602662; GFX11-NEXT: scratch_load_b32 v65, off, s32 offset:722663; GFX11-NEXT: scratch_load_b32 v64, off, s32 offset:682664; GFX11-NEXT: scratch_load_b32 v67, off, s32 offset:802665; GFX11-NEXT: scratch_load_b32 v66, off, s32 offset:762666; GFX11-NEXT: scratch_load_b32 v69, off, s32 offset:882667; GFX11-NEXT: scratch_load_b32 v68, off, s32 offset:842668; GFX11-NEXT: scratch_load_b32 v71, off, s32 offset:962669; GFX11-NEXT: scratch_load_b32 v70, off, s32 offset:922670; GFX11-NEXT: scratch_load_b32 v81, off, s32 offset:1042671; GFX11-NEXT: scratch_load_b32 v80, off, s32 offset:1002672; GFX11-NEXT: scratch_load_b32 v83, off, s32 offset:1122673; GFX11-NEXT: scratch_load_b32 v82, off, s32 offset:1082674; GFX11-NEXT: scratch_load_b32 v85, off, s32 offset:1202675; GFX11-NEXT: scratch_load_b32 v84, off, s32 offset:1162676; GFX11-NEXT: scratch_load_b32 v87, off, s32 offset:1282677; GFX11-NEXT: scratch_load_b32 v86, off, s32 offset:1242678; GFX11-NEXT: s_waitcnt vmcnt(30)2679; GFX11-NEXT: v_max_f64 v[96:97], v[0:1], v[32:33]2680; GFX11-NEXT: v_cmp_u_f64_e32 vcc_lo, v[0:1], v[32:33]2681; GFX11-NEXT: s_waitcnt vmcnt(28)2682; GFX11-NEXT: v_max_f64 v[32:33], v[2:3], v[34:35]2683; GFX11-NEXT: v_cmp_u_f64_e64 s0, v[2:3], v[34:35]2684; GFX11-NEXT: s_waitcnt vmcnt(26)2685; GFX11-NEXT: v_max_f64 v[34:35], v[4:5], v[36:37]2686; GFX11-NEXT: v_cmp_u_f64_e64 s1, v[4:5], v[36:37]2687; GFX11-NEXT: s_waitcnt vmcnt(24)2688; GFX11-NEXT: v_max_f64 v[36:37], v[6:7], v[38:39]2689; GFX11-NEXT: v_cmp_u_f64_e64 s2, v[6:7], v[38:39]2690; GFX11-NEXT: s_waitcnt vmcnt(22)2691; GFX11-NEXT: v_max_f64 v[38:39], v[8:9], v[48:49]2692; GFX11-NEXT: v_cmp_u_f64_e64 s3, v[8:9], v[48:49]2693; GFX11-NEXT: s_waitcnt vmcnt(20)2694; GFX11-NEXT: v_max_f64 v[48:49], v[10:11], v[50:51]2695; GFX11-NEXT: v_cmp_u_f64_e64 s4, v[10:11], v[50:51]2696; GFX11-NEXT: s_waitcnt vmcnt(18)2697; GFX11-NEXT: v_max_f64 v[50:51], v[12:13], v[52:53]2698; GFX11-NEXT: v_cmp_u_f64_e64 s5, v[12:13], v[52:53]2699; GFX11-NEXT: s_waitcnt vmcnt(16)2700; GFX11-NEXT: v_max_f64 v[52:53], v[14:15], v[54:55]2701; GFX11-NEXT: v_cmp_u_f64_e64 s6, v[14:15], v[54:55]2702; GFX11-NEXT: s_waitcnt vmcnt(14)2703; GFX11-NEXT: v_max_f64 v[54:55], v[16:17], v[64:65]2704; GFX11-NEXT: v_cmp_u_f64_e64 s7, v[16:17], v[64:65]2705; GFX11-NEXT: s_waitcnt vmcnt(12)2706; GFX11-NEXT: v_max_f64 v[64:65], v[18:19], v[66:67]2707; GFX11-NEXT: v_cmp_u_f64_e64 s8, v[18:19], v[66:67]2708; GFX11-NEXT: s_waitcnt vmcnt(10)2709; GFX11-NEXT: v_max_f64 v[66:67], v[20:21], v[68:69]2710; GFX11-NEXT: v_cmp_u_f64_e64 s9, v[20:21], v[68:69]2711; GFX11-NEXT: s_waitcnt vmcnt(8)2712; GFX11-NEXT: v_max_f64 v[68:69], v[22:23], v[70:71]2713; GFX11-NEXT: v_cmp_u_f64_e64 s10, v[22:23], v[70:71]2714; GFX11-NEXT: s_waitcnt vmcnt(6)2715; GFX11-NEXT: v_max_f64 v[70:71], v[24:25], v[80:81]2716; GFX11-NEXT: v_cmp_u_f64_e64 s11, v[24:25], v[80:81]2717; GFX11-NEXT: s_waitcnt vmcnt(4)2718; GFX11-NEXT: v_max_f64 v[80:81], v[26:27], v[82:83]2719; GFX11-NEXT: v_cmp_u_f64_e64 s12, v[26:27], v[82:83]2720; GFX11-NEXT: s_waitcnt vmcnt(2)2721; GFX11-NEXT: v_max_f64 v[82:83], v[28:29], v[84:85]2722; GFX11-NEXT: v_cmp_u_f64_e64 s13, v[28:29], v[84:85]2723; GFX11-NEXT: s_waitcnt vmcnt(0)2724; GFX11-NEXT: v_max_f64 v[84:85], v[30:31], v[86:87]2725; GFX11-NEXT: v_cmp_u_f64_e64 s14, v[30:31], v[86:87]2726; GFX11-NEXT: v_cndmask_b32_e64 v0, v96, 0, vcc_lo2727; GFX11-NEXT: v_cndmask_b32_e64 v1, v97, 0x7ff80000, vcc_lo2728; GFX11-NEXT: v_cndmask_b32_e64 v2, v32, 0, s02729; GFX11-NEXT: v_cndmask_b32_e64 v3, v33, 0x7ff80000, s02730; GFX11-NEXT: v_cndmask_b32_e64 v4, v34, 0, s12731; GFX11-NEXT: v_cndmask_b32_e64 v5, v35, 0x7ff80000, s12732; GFX11-NEXT: v_cndmask_b32_e64 v6, v36, 0, s22733; GFX11-NEXT: v_cndmask_b32_e64 v7, v37, 0x7ff80000, s22734; GFX11-NEXT: v_cndmask_b32_e64 v8, v38, 0, s32735; GFX11-NEXT: v_cndmask_b32_e64 v9, v39, 0x7ff80000, s32736; GFX11-NEXT: v_cndmask_b32_e64 v10, v48, 0, s42737; GFX11-NEXT: v_cndmask_b32_e64 v11, v49, 0x7ff80000, s42738; GFX11-NEXT: v_cndmask_b32_e64 v12, v50, 0, s52739; GFX11-NEXT: v_cndmask_b32_e64 v13, v51, 0x7ff80000, s52740; GFX11-NEXT: v_cndmask_b32_e64 v14, v52, 0, s62741; GFX11-NEXT: v_cndmask_b32_e64 v15, v53, 0x7ff80000, s62742; GFX11-NEXT: v_cndmask_b32_e64 v16, v54, 0, s72743; GFX11-NEXT: v_cndmask_b32_e64 v17, v55, 0x7ff80000, s72744; GFX11-NEXT: v_cndmask_b32_e64 v18, v64, 0, s82745; GFX11-NEXT: v_cndmask_b32_e64 v19, v65, 0x7ff80000, s82746; GFX11-NEXT: v_cndmask_b32_e64 v20, v66, 0, s92747; GFX11-NEXT: v_cndmask_b32_e64 v21, v67, 0x7ff80000, s92748; GFX11-NEXT: v_cndmask_b32_e64 v22, v68, 0, s102749; GFX11-NEXT: v_cndmask_b32_e64 v23, v69, 0x7ff80000, s102750; GFX11-NEXT: v_cndmask_b32_e64 v24, v70, 0, s112751; GFX11-NEXT: v_cndmask_b32_e64 v25, v71, 0x7ff80000, s112752; GFX11-NEXT: v_cndmask_b32_e64 v26, v80, 0, s122753; GFX11-NEXT: v_cndmask_b32_e64 v27, v81, 0x7ff80000, s122754; GFX11-NEXT: v_cndmask_b32_e64 v28, v82, 0, s132755; GFX11-NEXT: v_cndmask_b32_e64 v29, v83, 0x7ff80000, s132756; GFX11-NEXT: v_cndmask_b32_e64 v30, v84, 0, s142757; GFX11-NEXT: v_cndmask_b32_e64 v31, v85, 0x7ff80000, s142758; GFX11-NEXT: s_setpc_b64 s[30:31]2759;2760; GFX12-LABEL: v_maximum_v16f64:2761; GFX12: ; %bb.0:2762; GFX12-NEXT: s_wait_loadcnt_dscnt 0x02763; GFX12-NEXT: s_wait_expcnt 0x02764; GFX12-NEXT: s_wait_samplecnt 0x02765; GFX12-NEXT: s_wait_bvhcnt 0x02766; GFX12-NEXT: s_wait_kmcnt 0x02767; GFX12-NEXT: s_clause 0x1f2768; GFX12-NEXT: scratch_load_b32 v31, off, s322769; GFX12-NEXT: scratch_load_b32 v33, off, s32 offset:82770; GFX12-NEXT: scratch_load_b32 v32, off, s32 offset:42771; GFX12-NEXT: scratch_load_b32 v35, off, s32 offset:162772; GFX12-NEXT: scratch_load_b32 v34, off, s32 offset:122773; GFX12-NEXT: scratch_load_b32 v37, off, s32 offset:242774; GFX12-NEXT: scratch_load_b32 v36, off, s32 offset:202775; GFX12-NEXT: scratch_load_b32 v39, off, s32 offset:322776; GFX12-NEXT: scratch_load_b32 v38, off, s32 offset:282777; GFX12-NEXT: scratch_load_b32 v49, off, s32 offset:402778; GFX12-NEXT: scratch_load_b32 v48, off, s32 offset:362779; GFX12-NEXT: scratch_load_b32 v51, off, s32 offset:482780; GFX12-NEXT: scratch_load_b32 v50, off, s32 offset:442781; GFX12-NEXT: scratch_load_b32 v53, off, s32 offset:562782; GFX12-NEXT: scratch_load_b32 v52, off, s32 offset:522783; GFX12-NEXT: scratch_load_b32 v55, off, s32 offset:642784; GFX12-NEXT: scratch_load_b32 v54, off, s32 offset:602785; GFX12-NEXT: scratch_load_b32 v65, off, s32 offset:722786; GFX12-NEXT: scratch_load_b32 v64, off, s32 offset:682787; GFX12-NEXT: scratch_load_b32 v67, off, s32 offset:802788; GFX12-NEXT: scratch_load_b32 v66, off, s32 offset:762789; GFX12-NEXT: scratch_load_b32 v69, off, s32 offset:882790; GFX12-NEXT: scratch_load_b32 v68, off, s32 offset:842791; GFX12-NEXT: scratch_load_b32 v71, off, s32 offset:962792; GFX12-NEXT: scratch_load_b32 v70, off, s32 offset:922793; GFX12-NEXT: scratch_load_b32 v81, off, s32 offset:1042794; GFX12-NEXT: scratch_load_b32 v80, off, s32 offset:1002795; GFX12-NEXT: scratch_load_b32 v83, off, s32 offset:1122796; GFX12-NEXT: scratch_load_b32 v82, off, s32 offset:1082797; GFX12-NEXT: scratch_load_b32 v85, off, s32 offset:1202798; GFX12-NEXT: scratch_load_b32 v84, off, s32 offset:1162799; GFX12-NEXT: scratch_load_b32 v87, off, s32 offset:1282800; GFX12-NEXT: scratch_load_b32 v86, off, s32 offset:1242801; GFX12-NEXT: s_wait_loadcnt 0x1e2802; GFX12-NEXT: v_maximum_f64 v[0:1], v[0:1], v[32:33]2803; GFX12-NEXT: s_wait_loadcnt 0x1c2804; GFX12-NEXT: v_maximum_f64 v[2:3], v[2:3], v[34:35]2805; GFX12-NEXT: s_wait_loadcnt 0x1a2806; GFX12-NEXT: v_maximum_f64 v[4:5], v[4:5], v[36:37]2807; GFX12-NEXT: s_wait_loadcnt 0x182808; GFX12-NEXT: v_maximum_f64 v[6:7], v[6:7], v[38:39]2809; GFX12-NEXT: s_wait_loadcnt 0x162810; GFX12-NEXT: v_maximum_f64 v[8:9], v[8:9], v[48:49]2811; GFX12-NEXT: s_wait_loadcnt 0x142812; GFX12-NEXT: v_maximum_f64 v[10:11], v[10:11], v[50:51]2813; GFX12-NEXT: s_wait_loadcnt 0x122814; GFX12-NEXT: v_maximum_f64 v[12:13], v[12:13], v[52:53]2815; GFX12-NEXT: s_wait_loadcnt 0x102816; GFX12-NEXT: v_maximum_f64 v[14:15], v[14:15], v[54:55]2817; GFX12-NEXT: s_wait_loadcnt 0xe2818; GFX12-NEXT: v_maximum_f64 v[16:17], v[16:17], v[64:65]2819; GFX12-NEXT: s_wait_loadcnt 0xc2820; GFX12-NEXT: v_maximum_f64 v[18:19], v[18:19], v[66:67]2821; GFX12-NEXT: s_wait_loadcnt 0xa2822; GFX12-NEXT: v_maximum_f64 v[20:21], v[20:21], v[68:69]2823; GFX12-NEXT: s_wait_loadcnt 0x82824; GFX12-NEXT: v_maximum_f64 v[22:23], v[22:23], v[70:71]2825; GFX12-NEXT: s_wait_loadcnt 0x62826; GFX12-NEXT: v_maximum_f64 v[24:25], v[24:25], v[80:81]2827; GFX12-NEXT: s_wait_loadcnt 0x42828; GFX12-NEXT: v_maximum_f64 v[26:27], v[26:27], v[82:83]2829; GFX12-NEXT: s_wait_loadcnt 0x22830; GFX12-NEXT: v_maximum_f64 v[28:29], v[28:29], v[84:85]2831; GFX12-NEXT: s_wait_loadcnt 0x02832; GFX12-NEXT: v_maximum_f64 v[30:31], v[30:31], v[86:87]2833; GFX12-NEXT: s_setpc_b64 s[30:31]2834 %op = call <16 x double> @llvm.maximum.v16f64(<16 x double> %src0, <16 x double> %src1)2835 ret <16 x double> %op2836}2837;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:2838; GCN: {{.*}}2839