brintos

brintos / llvm-project-archived public Read only

0
0
Text · 63.0 KiB · 66cc7f3 Raw
1484 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=amdgcn-- -mcpu=gfx600 < %s | FileCheck -check-prefix=GFX6 %s3; RUN: llc -mtriple=amdgcn-- -mcpu=gfx700 < %s | FileCheck -check-prefix=GFX7 %s4; RUN: llc -mtriple=amdgcn-- -mcpu=gfx803 < %s | FileCheck -check-prefix=GFX8 %s5; RUN: llc -mtriple=amdgcn-- -mcpu=gfx900 < %s | FileCheck -check-prefix=GFX9 %s6; RUN: llc -mtriple=amdgcn-- -mcpu=gfx1010 < %s | FileCheck -check-prefix=GFX10 %s7; RUN: llc -mtriple=amdgcn-- -mcpu=gfx1100 -mattr=+real-true16 < %s | FileCheck -check-prefixes=GFX11,GFX11-TRUE16 %s8; RUN: llc -mtriple=amdgcn-- -mcpu=gfx1100 -mattr=-real-true16 < %s | FileCheck -check-prefixes=GFX11,GFX11-FAKE16 %s9; RUN: llc -mtriple=amdgcn-- -mcpu=gfx1200 -mattr=+real-true16 < %s | FileCheck -check-prefixes=GFX12,GFX12-TRUE16 %s10; RUN: llc -mtriple=amdgcn-- -mcpu=gfx1200 -mattr=-real-true16 < %s | FileCheck -check-prefixes=GFX12,GFX12-FAKE16 %s11 12define i16 @abs_i16(i16 %arg) {13; GFX6-LABEL: abs_i16:14; GFX6:       ; %bb.0:15; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)16; GFX6-NEXT:    v_bfe_i32 v0, v0, 0, 1617; GFX6-NEXT:    v_sub_i32_e32 v1, vcc, 0, v018; GFX6-NEXT:    v_max_i32_e32 v0, v1, v019; GFX6-NEXT:    s_setpc_b64 s[30:31]20;21; GFX7-LABEL: abs_i16:22; GFX7:       ; %bb.0:23; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)24; GFX7-NEXT:    v_bfe_i32 v0, v0, 0, 1625; GFX7-NEXT:    v_sub_i32_e32 v1, vcc, 0, v026; GFX7-NEXT:    v_max_i32_e32 v0, v1, v027; GFX7-NEXT:    s_setpc_b64 s[30:31]28;29; GFX8-LABEL: abs_i16:30; GFX8:       ; %bb.0:31; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)32; GFX8-NEXT:    v_sub_u16_e32 v1, 0, v033; GFX8-NEXT:    v_max_i16_e32 v0, v0, v134; GFX8-NEXT:    s_setpc_b64 s[30:31]35;36; GFX9-LABEL: abs_i16:37; GFX9:       ; %bb.0:38; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)39; GFX9-NEXT:    v_sub_u16_e32 v1, 0, v040; GFX9-NEXT:    v_max_i16_e32 v0, v0, v141; GFX9-NEXT:    s_setpc_b64 s[30:31]42;43; GFX10-LABEL: abs_i16:44; GFX10:       ; %bb.0:45; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)46; GFX10-NEXT:    v_sub_nc_u16 v1, 0, v047; GFX10-NEXT:    v_max_i16 v0, v0, v148; GFX10-NEXT:    s_setpc_b64 s[30:31]49;50; GFX11-TRUE16-LABEL: abs_i16:51; GFX11-TRUE16:       ; %bb.0:52; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)53; GFX11-TRUE16-NEXT:    v_sub_nc_u16 v0.h, 0, v0.l54; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)55; GFX11-TRUE16-NEXT:    v_max_i16 v0.l, v0.l, v0.h56; GFX11-TRUE16-NEXT:    s_setpc_b64 s[30:31]57;58; GFX11-FAKE16-LABEL: abs_i16:59; GFX11-FAKE16:       ; %bb.0:60; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)61; GFX11-FAKE16-NEXT:    v_sub_nc_u16 v1, 0, v062; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)63; GFX11-FAKE16-NEXT:    v_max_i16 v0, v0, v164; GFX11-FAKE16-NEXT:    s_setpc_b64 s[30:31]65;66; GFX12-TRUE16-LABEL: abs_i16:67; GFX12-TRUE16:       ; %bb.0:68; GFX12-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x069; GFX12-TRUE16-NEXT:    s_wait_expcnt 0x070; GFX12-TRUE16-NEXT:    s_wait_samplecnt 0x071; GFX12-TRUE16-NEXT:    s_wait_bvhcnt 0x072; GFX12-TRUE16-NEXT:    s_wait_kmcnt 0x073; GFX12-TRUE16-NEXT:    v_sub_nc_u16 v0.h, 0, v0.l74; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)75; GFX12-TRUE16-NEXT:    v_max_i16 v0.l, v0.l, v0.h76; GFX12-TRUE16-NEXT:    s_setpc_b64 s[30:31]77;78; GFX12-FAKE16-LABEL: abs_i16:79; GFX12-FAKE16:       ; %bb.0:80; GFX12-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x081; GFX12-FAKE16-NEXT:    s_wait_expcnt 0x082; GFX12-FAKE16-NEXT:    s_wait_samplecnt 0x083; GFX12-FAKE16-NEXT:    s_wait_bvhcnt 0x084; GFX12-FAKE16-NEXT:    s_wait_kmcnt 0x085; GFX12-FAKE16-NEXT:    v_sub_nc_u16 v1, 0, v086; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)87; GFX12-FAKE16-NEXT:    v_max_i16 v0, v0, v188; GFX12-FAKE16-NEXT:    s_setpc_b64 s[30:31]89  %res = call i16 @llvm.abs.i16(i16 %arg, i1 false)90  ret i16 %res91}92 93define <2 x i16> @v_abs_v2i16(<2 x i16> %arg) {94; GFX6-LABEL: v_abs_v2i16:95; GFX6:       ; %bb.0:96; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)97; GFX6-NEXT:    v_bfe_i32 v0, v0, 0, 1698; GFX6-NEXT:    v_bfe_i32 v1, v1, 0, 1699; GFX6-NEXT:    v_sub_i32_e32 v2, vcc, 0, v0100; GFX6-NEXT:    v_max_i32_e32 v0, v2, v0101; GFX6-NEXT:    v_sub_i32_e32 v2, vcc, 0, v1102; GFX6-NEXT:    v_max_i32_e32 v1, v2, v1103; GFX6-NEXT:    v_lshlrev_b32_e32 v2, 16, v1104; GFX6-NEXT:    v_or_b32_e32 v0, v0, v2105; GFX6-NEXT:    s_setpc_b64 s[30:31]106;107; GFX7-LABEL: v_abs_v2i16:108; GFX7:       ; %bb.0:109; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)110; GFX7-NEXT:    v_bfe_i32 v0, v0, 0, 16111; GFX7-NEXT:    v_bfe_i32 v1, v1, 0, 16112; GFX7-NEXT:    v_sub_i32_e32 v2, vcc, 0, v0113; GFX7-NEXT:    v_max_i32_e32 v0, v2, v0114; GFX7-NEXT:    v_sub_i32_e32 v2, vcc, 0, v1115; GFX7-NEXT:    v_max_i32_e32 v1, v2, v1116; GFX7-NEXT:    v_lshlrev_b32_e32 v2, 16, v1117; GFX7-NEXT:    v_or_b32_e32 v0, v0, v2118; GFX7-NEXT:    s_setpc_b64 s[30:31]119;120; GFX8-LABEL: v_abs_v2i16:121; GFX8:       ; %bb.0:122; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)123; GFX8-NEXT:    v_mov_b32_e32 v1, 0124; GFX8-NEXT:    v_sub_u16_sdwa v1, v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1125; GFX8-NEXT:    v_sub_u16_e32 v2, 0, v0126; GFX8-NEXT:    v_max_i16_sdwa v1, v0, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD127; GFX8-NEXT:    v_max_i16_e32 v0, v0, v2128; GFX8-NEXT:    v_or_b32_e32 v0, v0, v1129; GFX8-NEXT:    s_setpc_b64 s[30:31]130;131; GFX9-LABEL: v_abs_v2i16:132; GFX9:       ; %bb.0:133; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)134; GFX9-NEXT:    v_pk_sub_i16 v1, 0, v0135; GFX9-NEXT:    v_pk_max_i16 v0, v0, v1136; GFX9-NEXT:    s_setpc_b64 s[30:31]137;138; GFX10-LABEL: v_abs_v2i16:139; GFX10:       ; %bb.0:140; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)141; GFX10-NEXT:    v_pk_sub_i16 v1, 0, v0142; GFX10-NEXT:    v_pk_max_i16 v0, v0, v1143; GFX10-NEXT:    s_setpc_b64 s[30:31]144;145; GFX11-LABEL: v_abs_v2i16:146; GFX11:       ; %bb.0:147; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)148; GFX11-NEXT:    v_pk_sub_i16 v1, 0, v0149; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1)150; GFX11-NEXT:    v_pk_max_i16 v0, v0, v1151; GFX11-NEXT:    s_setpc_b64 s[30:31]152;153; GFX12-LABEL: v_abs_v2i16:154; GFX12:       ; %bb.0:155; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0156; GFX12-NEXT:    s_wait_expcnt 0x0157; GFX12-NEXT:    s_wait_samplecnt 0x0158; GFX12-NEXT:    s_wait_bvhcnt 0x0159; GFX12-NEXT:    s_wait_kmcnt 0x0160; GFX12-NEXT:    v_pk_sub_i16 v1, 0, v0161; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)162; GFX12-NEXT:    v_pk_max_i16 v0, v0, v1163; GFX12-NEXT:    s_setpc_b64 s[30:31]164  %res = call <2 x i16> @llvm.abs.v2i16(<2 x i16> %arg, i1 false)165  ret <2 x i16> %res166}167 168define <3 x i16> @v_abs_v3i16(<3 x i16> %arg) {169; GFX6-LABEL: v_abs_v3i16:170; GFX6:       ; %bb.0:171; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)172; GFX6-NEXT:    v_bfe_i32 v0, v0, 0, 16173; GFX6-NEXT:    v_bfe_i32 v1, v1, 0, 16174; GFX6-NEXT:    v_sub_i32_e32 v3, vcc, 0, v0175; GFX6-NEXT:    v_bfe_i32 v2, v2, 0, 16176; GFX6-NEXT:    v_max_i32_e32 v0, v3, v0177; GFX6-NEXT:    v_sub_i32_e32 v3, vcc, 0, v1178; GFX6-NEXT:    v_max_i32_e32 v1, v3, v1179; GFX6-NEXT:    v_sub_i32_e32 v3, vcc, 0, v2180; GFX6-NEXT:    v_lshlrev_b32_e32 v1, 16, v1181; GFX6-NEXT:    v_max_i32_e32 v2, v3, v2182; GFX6-NEXT:    v_or_b32_e32 v0, v0, v1183; GFX6-NEXT:    v_alignbit_b32 v1, v2, v1, 16184; GFX6-NEXT:    s_setpc_b64 s[30:31]185;186; GFX7-LABEL: v_abs_v3i16:187; GFX7:       ; %bb.0:188; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)189; GFX7-NEXT:    v_bfe_i32 v0, v0, 0, 16190; GFX7-NEXT:    v_bfe_i32 v1, v1, 0, 16191; GFX7-NEXT:    v_sub_i32_e32 v3, vcc, 0, v0192; GFX7-NEXT:    v_bfe_i32 v2, v2, 0, 16193; GFX7-NEXT:    v_max_i32_e32 v0, v3, v0194; GFX7-NEXT:    v_sub_i32_e32 v3, vcc, 0, v1195; GFX7-NEXT:    v_max_i32_e32 v1, v3, v1196; GFX7-NEXT:    v_sub_i32_e32 v3, vcc, 0, v2197; GFX7-NEXT:    v_lshlrev_b32_e32 v1, 16, v1198; GFX7-NEXT:    v_max_i32_e32 v2, v3, v2199; GFX7-NEXT:    v_or_b32_e32 v0, v0, v1200; GFX7-NEXT:    v_alignbit_b32 v1, v2, v1, 16201; GFX7-NEXT:    s_setpc_b64 s[30:31]202;203; GFX8-LABEL: v_abs_v3i16:204; GFX8:       ; %bb.0:205; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)206; GFX8-NEXT:    v_mov_b32_e32 v2, 0207; GFX8-NEXT:    v_sub_u16_e32 v3, 0, v1208; GFX8-NEXT:    v_sub_u16_sdwa v2, v2, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1209; GFX8-NEXT:    v_max_i16_e32 v1, v1, v3210; GFX8-NEXT:    v_sub_u16_e32 v3, 0, v0211; GFX8-NEXT:    v_max_i16_sdwa v2, v0, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD212; GFX8-NEXT:    v_max_i16_e32 v0, v0, v3213; GFX8-NEXT:    v_or_b32_e32 v0, v0, v2214; GFX8-NEXT:    s_setpc_b64 s[30:31]215;216; GFX9-LABEL: v_abs_v3i16:217; GFX9:       ; %bb.0:218; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)219; GFX9-NEXT:    v_pk_sub_i16 v2, 0, v0220; GFX9-NEXT:    v_pk_max_i16 v0, v0, v2221; GFX9-NEXT:    v_pk_sub_i16 v2, 0, v1222; GFX9-NEXT:    v_pk_max_i16 v1, v1, v2223; GFX9-NEXT:    s_setpc_b64 s[30:31]224;225; GFX10-LABEL: v_abs_v3i16:226; GFX10:       ; %bb.0:227; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)228; GFX10-NEXT:    v_pk_sub_i16 v2, 0, v0229; GFX10-NEXT:    v_pk_sub_i16 v3, 0, v1230; GFX10-NEXT:    v_pk_max_i16 v0, v0, v2231; GFX10-NEXT:    v_pk_max_i16 v1, v1, v3232; GFX10-NEXT:    s_setpc_b64 s[30:31]233;234; GFX11-LABEL: v_abs_v3i16:235; GFX11:       ; %bb.0:236; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)237; GFX11-NEXT:    v_pk_sub_i16 v2, 0, v0238; GFX11-NEXT:    v_pk_sub_i16 v3, 0, v1239; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)240; GFX11-NEXT:    v_pk_max_i16 v0, v0, v2241; GFX11-NEXT:    v_pk_max_i16 v1, v1, v3242; GFX11-NEXT:    s_setpc_b64 s[30:31]243;244; GFX12-LABEL: v_abs_v3i16:245; GFX12:       ; %bb.0:246; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0247; GFX12-NEXT:    s_wait_expcnt 0x0248; GFX12-NEXT:    s_wait_samplecnt 0x0249; GFX12-NEXT:    s_wait_bvhcnt 0x0250; GFX12-NEXT:    s_wait_kmcnt 0x0251; GFX12-NEXT:    v_pk_sub_i16 v2, 0, v0252; GFX12-NEXT:    v_pk_sub_i16 v3, 0, v1253; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)254; GFX12-NEXT:    v_pk_max_i16 v0, v0, v2255; GFX12-NEXT:    v_pk_max_i16 v1, v1, v3256; GFX12-NEXT:    s_setpc_b64 s[30:31]257  %res = call <3 x i16> @llvm.abs.v3i16(<3 x i16> %arg, i1 false)258  ret <3 x i16> %res259}260 261define <4 x i16> @v_abs_v4i16(<4 x i16> %arg) {262; GFX6-LABEL: v_abs_v4i16:263; GFX6:       ; %bb.0:264; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)265; GFX6-NEXT:    v_bfe_i32 v0, v0, 0, 16266; GFX6-NEXT:    v_bfe_i32 v1, v1, 0, 16267; GFX6-NEXT:    v_sub_i32_e32 v4, vcc, 0, v0268; GFX6-NEXT:    v_bfe_i32 v2, v2, 0, 16269; GFX6-NEXT:    v_max_i32_e32 v0, v4, v0270; GFX6-NEXT:    v_sub_i32_e32 v4, vcc, 0, v1271; GFX6-NEXT:    v_bfe_i32 v3, v3, 0, 16272; GFX6-NEXT:    v_max_i32_e32 v1, v4, v1273; GFX6-NEXT:    v_sub_i32_e32 v4, vcc, 0, v2274; GFX6-NEXT:    v_max_i32_e32 v2, v4, v2275; GFX6-NEXT:    v_sub_i32_e32 v4, vcc, 0, v3276; GFX6-NEXT:    v_max_i32_e32 v3, v4, v3277; GFX6-NEXT:    v_lshlrev_b32_e32 v4, 16, v3278; GFX6-NEXT:    v_lshlrev_b32_e32 v1, 16, v1279; GFX6-NEXT:    v_or_b32_e32 v2, v2, v4280; GFX6-NEXT:    v_or_b32_e32 v0, v0, v1281; GFX6-NEXT:    v_alignbit_b32 v1, v2, v1, 16282; GFX6-NEXT:    s_setpc_b64 s[30:31]283;284; GFX7-LABEL: v_abs_v4i16:285; GFX7:       ; %bb.0:286; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)287; GFX7-NEXT:    v_bfe_i32 v0, v0, 0, 16288; GFX7-NEXT:    v_bfe_i32 v1, v1, 0, 16289; GFX7-NEXT:    v_sub_i32_e32 v4, vcc, 0, v0290; GFX7-NEXT:    v_bfe_i32 v2, v2, 0, 16291; GFX7-NEXT:    v_max_i32_e32 v0, v4, v0292; GFX7-NEXT:    v_sub_i32_e32 v4, vcc, 0, v1293; GFX7-NEXT:    v_bfe_i32 v3, v3, 0, 16294; GFX7-NEXT:    v_max_i32_e32 v1, v4, v1295; GFX7-NEXT:    v_sub_i32_e32 v4, vcc, 0, v2296; GFX7-NEXT:    v_max_i32_e32 v2, v4, v2297; GFX7-NEXT:    v_sub_i32_e32 v4, vcc, 0, v3298; GFX7-NEXT:    v_max_i32_e32 v3, v4, v3299; GFX7-NEXT:    v_lshlrev_b32_e32 v4, 16, v3300; GFX7-NEXT:    v_lshlrev_b32_e32 v1, 16, v1301; GFX7-NEXT:    v_or_b32_e32 v2, v2, v4302; GFX7-NEXT:    v_or_b32_e32 v0, v0, v1303; GFX7-NEXT:    v_alignbit_b32 v1, v2, v1, 16304; GFX7-NEXT:    s_setpc_b64 s[30:31]305;306; GFX8-LABEL: v_abs_v4i16:307; GFX8:       ; %bb.0:308; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)309; GFX8-NEXT:    v_mov_b32_e32 v2, 0310; GFX8-NEXT:    v_sub_u16_sdwa v3, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1311; GFX8-NEXT:    v_sub_u16_sdwa v2, v2, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1312; GFX8-NEXT:    v_sub_u16_e32 v4, 0, v1313; GFX8-NEXT:    v_sub_u16_e32 v5, 0, v0314; GFX8-NEXT:    v_max_i16_sdwa v3, v1, v3 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD315; GFX8-NEXT:    v_max_i16_sdwa v2, v0, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD316; GFX8-NEXT:    v_max_i16_e32 v0, v0, v5317; GFX8-NEXT:    v_max_i16_e32 v1, v1, v4318; GFX8-NEXT:    v_or_b32_e32 v0, v0, v2319; GFX8-NEXT:    v_or_b32_e32 v1, v1, v3320; GFX8-NEXT:    s_setpc_b64 s[30:31]321;322; GFX9-LABEL: v_abs_v4i16:323; GFX9:       ; %bb.0:324; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)325; GFX9-NEXT:    v_pk_sub_i16 v2, 0, v0326; GFX9-NEXT:    v_pk_max_i16 v0, v0, v2327; GFX9-NEXT:    v_pk_sub_i16 v2, 0, v1328; GFX9-NEXT:    v_pk_max_i16 v1, v1, v2329; GFX9-NEXT:    s_setpc_b64 s[30:31]330;331; GFX10-LABEL: v_abs_v4i16:332; GFX10:       ; %bb.0:333; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)334; GFX10-NEXT:    v_pk_sub_i16 v2, 0, v0335; GFX10-NEXT:    v_pk_sub_i16 v3, 0, v1336; GFX10-NEXT:    v_pk_max_i16 v0, v0, v2337; GFX10-NEXT:    v_pk_max_i16 v1, v1, v3338; GFX10-NEXT:    s_setpc_b64 s[30:31]339;340; GFX11-LABEL: v_abs_v4i16:341; GFX11:       ; %bb.0:342; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)343; GFX11-NEXT:    v_pk_sub_i16 v2, 0, v0344; GFX11-NEXT:    v_pk_sub_i16 v3, 0, v1345; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)346; GFX11-NEXT:    v_pk_max_i16 v0, v0, v2347; GFX11-NEXT:    v_pk_max_i16 v1, v1, v3348; GFX11-NEXT:    s_setpc_b64 s[30:31]349;350; GFX12-LABEL: v_abs_v4i16:351; GFX12:       ; %bb.0:352; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0353; GFX12-NEXT:    s_wait_expcnt 0x0354; GFX12-NEXT:    s_wait_samplecnt 0x0355; GFX12-NEXT:    s_wait_bvhcnt 0x0356; GFX12-NEXT:    s_wait_kmcnt 0x0357; GFX12-NEXT:    v_pk_sub_i16 v2, 0, v0358; GFX12-NEXT:    v_pk_sub_i16 v3, 0, v1359; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)360; GFX12-NEXT:    v_pk_max_i16 v0, v0, v2361; GFX12-NEXT:    v_pk_max_i16 v1, v1, v3362; GFX12-NEXT:    s_setpc_b64 s[30:31]363  %res = call <4 x i16> @llvm.abs.v4i16(<4 x i16> %arg, i1 false)364  ret <4 x i16> %res365}366 367define <6 x i16> @v_abs_v6i16(<6 x i16> %arg) {368; GFX6-LABEL: v_abs_v6i16:369; GFX6:       ; %bb.0:370; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)371; GFX6-NEXT:    v_bfe_i32 v0, v0, 0, 16372; GFX6-NEXT:    v_bfe_i32 v1, v1, 0, 16373; GFX6-NEXT:    v_sub_i32_e32 v6, vcc, 0, v0374; GFX6-NEXT:    v_bfe_i32 v4, v4, 0, 16375; GFX6-NEXT:    v_max_i32_e32 v0, v6, v0376; GFX6-NEXT:    v_sub_i32_e32 v6, vcc, 0, v1377; GFX6-NEXT:    v_bfe_i32 v5, v5, 0, 16378; GFX6-NEXT:    v_max_i32_e32 v1, v6, v1379; GFX6-NEXT:    v_sub_i32_e32 v6, vcc, 0, v4380; GFX6-NEXT:    v_max_i32_e32 v4, v6, v4381; GFX6-NEXT:    v_sub_i32_e32 v6, vcc, 0, v5382; GFX6-NEXT:    v_max_i32_e32 v5, v6, v5383; GFX6-NEXT:    v_bfe_i32 v2, v2, 0, 16384; GFX6-NEXT:    v_lshlrev_b32_e32 v6, 16, v5385; GFX6-NEXT:    v_bfe_i32 v3, v3, 0, 16386; GFX6-NEXT:    v_or_b32_e32 v4, v4, v6387; GFX6-NEXT:    v_sub_i32_e32 v6, vcc, 0, v2388; GFX6-NEXT:    v_max_i32_e32 v2, v6, v2389; GFX6-NEXT:    v_sub_i32_e32 v6, vcc, 0, v3390; GFX6-NEXT:    v_max_i32_e32 v3, v6, v3391; GFX6-NEXT:    v_lshlrev_b32_e32 v6, 16, v3392; GFX6-NEXT:    v_lshlrev_b32_e32 v1, 16, v1393; GFX6-NEXT:    v_or_b32_e32 v2, v2, v6394; GFX6-NEXT:    v_or_b32_e32 v0, v0, v1395; GFX6-NEXT:    v_alignbit_b32 v1, v2, v1, 16396; GFX6-NEXT:    s_setpc_b64 s[30:31]397;398; GFX7-LABEL: v_abs_v6i16:399; GFX7:       ; %bb.0:400; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)401; GFX7-NEXT:    v_bfe_i32 v0, v0, 0, 16402; GFX7-NEXT:    v_bfe_i32 v1, v1, 0, 16403; GFX7-NEXT:    v_sub_i32_e32 v6, vcc, 0, v0404; GFX7-NEXT:    v_bfe_i32 v4, v4, 0, 16405; GFX7-NEXT:    v_max_i32_e32 v0, v6, v0406; GFX7-NEXT:    v_sub_i32_e32 v6, vcc, 0, v1407; GFX7-NEXT:    v_bfe_i32 v5, v5, 0, 16408; GFX7-NEXT:    v_max_i32_e32 v1, v6, v1409; GFX7-NEXT:    v_sub_i32_e32 v6, vcc, 0, v4410; GFX7-NEXT:    v_max_i32_e32 v4, v6, v4411; GFX7-NEXT:    v_sub_i32_e32 v6, vcc, 0, v5412; GFX7-NEXT:    v_max_i32_e32 v5, v6, v5413; GFX7-NEXT:    v_bfe_i32 v2, v2, 0, 16414; GFX7-NEXT:    v_lshlrev_b32_e32 v6, 16, v5415; GFX7-NEXT:    v_bfe_i32 v3, v3, 0, 16416; GFX7-NEXT:    v_or_b32_e32 v4, v4, v6417; GFX7-NEXT:    v_sub_i32_e32 v6, vcc, 0, v2418; GFX7-NEXT:    v_max_i32_e32 v2, v6, v2419; GFX7-NEXT:    v_sub_i32_e32 v6, vcc, 0, v3420; GFX7-NEXT:    v_max_i32_e32 v3, v6, v3421; GFX7-NEXT:    v_lshlrev_b32_e32 v6, 16, v3422; GFX7-NEXT:    v_lshlrev_b32_e32 v1, 16, v1423; GFX7-NEXT:    v_or_b32_e32 v2, v2, v6424; GFX7-NEXT:    v_or_b32_e32 v0, v0, v1425; GFX7-NEXT:    v_alignbit_b32 v1, v2, v1, 16426; GFX7-NEXT:    s_setpc_b64 s[30:31]427;428; GFX8-LABEL: v_abs_v6i16:429; GFX8:       ; %bb.0:430; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)431; GFX8-NEXT:    v_mov_b32_e32 v3, 0432; GFX8-NEXT:    v_sub_u16_sdwa v4, v3, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1433; GFX8-NEXT:    v_sub_u16_sdwa v5, v3, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1434; GFX8-NEXT:    v_sub_u16_sdwa v3, v3, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1435; GFX8-NEXT:    v_sub_u16_e32 v6, 0, v2436; GFX8-NEXT:    v_sub_u16_e32 v7, 0, v1437; GFX8-NEXT:    v_sub_u16_e32 v8, 0, v0438; GFX8-NEXT:    v_max_i16_sdwa v4, v2, v4 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD439; GFX8-NEXT:    v_max_i16_sdwa v5, v1, v5 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD440; GFX8-NEXT:    v_max_i16_sdwa v3, v0, v3 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD441; GFX8-NEXT:    v_max_i16_e32 v0, v0, v8442; GFX8-NEXT:    v_max_i16_e32 v1, v1, v7443; GFX8-NEXT:    v_max_i16_e32 v2, v2, v6444; GFX8-NEXT:    v_or_b32_e32 v0, v0, v3445; GFX8-NEXT:    v_or_b32_e32 v1, v1, v5446; GFX8-NEXT:    v_or_b32_e32 v2, v2, v4447; GFX8-NEXT:    s_setpc_b64 s[30:31]448;449; GFX9-LABEL: v_abs_v6i16:450; GFX9:       ; %bb.0:451; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)452; GFX9-NEXT:    v_pk_sub_i16 v3, 0, v0453; GFX9-NEXT:    v_pk_max_i16 v0, v0, v3454; GFX9-NEXT:    v_pk_sub_i16 v3, 0, v1455; GFX9-NEXT:    v_pk_max_i16 v1, v1, v3456; GFX9-NEXT:    v_pk_sub_i16 v3, 0, v2457; GFX9-NEXT:    v_pk_max_i16 v2, v2, v3458; GFX9-NEXT:    s_setpc_b64 s[30:31]459;460; GFX10-LABEL: v_abs_v6i16:461; GFX10:       ; %bb.0:462; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)463; GFX10-NEXT:    v_pk_sub_i16 v3, 0, v0464; GFX10-NEXT:    v_pk_sub_i16 v4, 0, v1465; GFX10-NEXT:    v_pk_sub_i16 v5, 0, v2466; GFX10-NEXT:    v_pk_max_i16 v0, v0, v3467; GFX10-NEXT:    v_pk_max_i16 v1, v1, v4468; GFX10-NEXT:    v_pk_max_i16 v2, v2, v5469; GFX10-NEXT:    s_setpc_b64 s[30:31]470;471; GFX11-LABEL: v_abs_v6i16:472; GFX11:       ; %bb.0:473; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)474; GFX11-NEXT:    v_pk_sub_i16 v3, 0, v0475; GFX11-NEXT:    v_pk_sub_i16 v4, 0, v1476; GFX11-NEXT:    v_pk_sub_i16 v5, 0, v2477; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3)478; GFX11-NEXT:    v_pk_max_i16 v0, v0, v3479; GFX11-NEXT:    v_pk_max_i16 v1, v1, v4480; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_3)481; GFX11-NEXT:    v_pk_max_i16 v2, v2, v5482; GFX11-NEXT:    s_setpc_b64 s[30:31]483;484; GFX12-LABEL: v_abs_v6i16:485; GFX12:       ; %bb.0:486; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0487; GFX12-NEXT:    s_wait_expcnt 0x0488; GFX12-NEXT:    s_wait_samplecnt 0x0489; GFX12-NEXT:    s_wait_bvhcnt 0x0490; GFX12-NEXT:    s_wait_kmcnt 0x0491; GFX12-NEXT:    v_pk_sub_i16 v3, 0, v0492; GFX12-NEXT:    v_pk_sub_i16 v4, 0, v1493; GFX12-NEXT:    v_pk_sub_i16 v5, 0, v2494; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3)495; GFX12-NEXT:    v_pk_max_i16 v0, v0, v3496; GFX12-NEXT:    v_pk_max_i16 v1, v1, v4497; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_3)498; GFX12-NEXT:    v_pk_max_i16 v2, v2, v5499; GFX12-NEXT:    s_setpc_b64 s[30:31]500  %res = call <6 x i16> @llvm.abs.v6i16(<6 x i16> %arg, i1 false)501  ret <6 x i16> %res502}503 504define <8 x i16> @v_abs_v8i16(<8 x i16> %arg) {505; GFX6-LABEL: v_abs_v8i16:506; GFX6:       ; %bb.0:507; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)508; GFX6-NEXT:    v_bfe_i32 v0, v0, 0, 16509; GFX6-NEXT:    v_bfe_i32 v1, v1, 0, 16510; GFX6-NEXT:    v_sub_i32_e32 v8, vcc, 0, v0511; GFX6-NEXT:    v_bfe_i32 v4, v4, 0, 16512; GFX6-NEXT:    v_max_i32_e32 v0, v8, v0513; GFX6-NEXT:    v_sub_i32_e32 v8, vcc, 0, v1514; GFX6-NEXT:    v_bfe_i32 v5, v5, 0, 16515; GFX6-NEXT:    v_max_i32_e32 v1, v8, v1516; GFX6-NEXT:    v_sub_i32_e32 v8, vcc, 0, v4517; GFX6-NEXT:    v_bfe_i32 v6, v6, 0, 16518; GFX6-NEXT:    v_max_i32_e32 v4, v8, v4519; GFX6-NEXT:    v_sub_i32_e32 v8, vcc, 0, v5520; GFX6-NEXT:    v_bfe_i32 v7, v7, 0, 16521; GFX6-NEXT:    v_max_i32_e32 v5, v8, v5522; GFX6-NEXT:    v_sub_i32_e32 v8, vcc, 0, v6523; GFX6-NEXT:    v_max_i32_e32 v6, v8, v6524; GFX6-NEXT:    v_sub_i32_e32 v8, vcc, 0, v7525; GFX6-NEXT:    v_max_i32_e32 v7, v8, v7526; GFX6-NEXT:    v_bfe_i32 v2, v2, 0, 16527; GFX6-NEXT:    v_lshlrev_b32_e32 v8, 16, v7528; GFX6-NEXT:    v_bfe_i32 v3, v3, 0, 16529; GFX6-NEXT:    v_or_b32_e32 v6, v6, v8530; GFX6-NEXT:    v_sub_i32_e32 v8, vcc, 0, v2531; GFX6-NEXT:    v_max_i32_e32 v2, v8, v2532; GFX6-NEXT:    v_sub_i32_e32 v8, vcc, 0, v3533; GFX6-NEXT:    v_max_i32_e32 v3, v8, v3534; GFX6-NEXT:    v_lshlrev_b32_e32 v8, 16, v3535; GFX6-NEXT:    v_lshlrev_b32_e32 v1, 16, v1536; GFX6-NEXT:    v_lshlrev_b32_e32 v5, 16, v5537; GFX6-NEXT:    v_or_b32_e32 v2, v2, v8538; GFX6-NEXT:    v_or_b32_e32 v0, v0, v1539; GFX6-NEXT:    v_or_b32_e32 v4, v4, v5540; GFX6-NEXT:    v_alignbit_b32 v1, v2, v1, 16541; GFX6-NEXT:    v_alignbit_b32 v5, v6, v5, 16542; GFX6-NEXT:    s_setpc_b64 s[30:31]543;544; GFX7-LABEL: v_abs_v8i16:545; GFX7:       ; %bb.0:546; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)547; GFX7-NEXT:    v_bfe_i32 v0, v0, 0, 16548; GFX7-NEXT:    v_bfe_i32 v1, v1, 0, 16549; GFX7-NEXT:    v_sub_i32_e32 v8, vcc, 0, v0550; GFX7-NEXT:    v_bfe_i32 v4, v4, 0, 16551; GFX7-NEXT:    v_max_i32_e32 v0, v8, v0552; GFX7-NEXT:    v_sub_i32_e32 v8, vcc, 0, v1553; GFX7-NEXT:    v_bfe_i32 v5, v5, 0, 16554; GFX7-NEXT:    v_max_i32_e32 v1, v8, v1555; GFX7-NEXT:    v_sub_i32_e32 v8, vcc, 0, v4556; GFX7-NEXT:    v_bfe_i32 v6, v6, 0, 16557; GFX7-NEXT:    v_max_i32_e32 v4, v8, v4558; GFX7-NEXT:    v_sub_i32_e32 v8, vcc, 0, v5559; GFX7-NEXT:    v_bfe_i32 v7, v7, 0, 16560; GFX7-NEXT:    v_max_i32_e32 v5, v8, v5561; GFX7-NEXT:    v_sub_i32_e32 v8, vcc, 0, v6562; GFX7-NEXT:    v_max_i32_e32 v6, v8, v6563; GFX7-NEXT:    v_sub_i32_e32 v8, vcc, 0, v7564; GFX7-NEXT:    v_max_i32_e32 v7, v8, v7565; GFX7-NEXT:    v_bfe_i32 v2, v2, 0, 16566; GFX7-NEXT:    v_lshlrev_b32_e32 v8, 16, v7567; GFX7-NEXT:    v_bfe_i32 v3, v3, 0, 16568; GFX7-NEXT:    v_or_b32_e32 v6, v6, v8569; GFX7-NEXT:    v_sub_i32_e32 v8, vcc, 0, v2570; GFX7-NEXT:    v_max_i32_e32 v2, v8, v2571; GFX7-NEXT:    v_sub_i32_e32 v8, vcc, 0, v3572; GFX7-NEXT:    v_max_i32_e32 v3, v8, v3573; GFX7-NEXT:    v_lshlrev_b32_e32 v8, 16, v3574; GFX7-NEXT:    v_lshlrev_b32_e32 v1, 16, v1575; GFX7-NEXT:    v_lshlrev_b32_e32 v5, 16, v5576; GFX7-NEXT:    v_or_b32_e32 v2, v2, v8577; GFX7-NEXT:    v_or_b32_e32 v0, v0, v1578; GFX7-NEXT:    v_or_b32_e32 v4, v4, v5579; GFX7-NEXT:    v_alignbit_b32 v1, v2, v1, 16580; GFX7-NEXT:    v_alignbit_b32 v5, v6, v5, 16581; GFX7-NEXT:    s_setpc_b64 s[30:31]582;583; GFX8-LABEL: v_abs_v8i16:584; GFX8:       ; %bb.0:585; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)586; GFX8-NEXT:    v_mov_b32_e32 v4, 0587; GFX8-NEXT:    v_sub_u16_sdwa v5, v4, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1588; GFX8-NEXT:    v_sub_u16_sdwa v6, v4, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1589; GFX8-NEXT:    v_sub_u16_sdwa v7, v4, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1590; GFX8-NEXT:    v_sub_u16_sdwa v4, v4, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1591; GFX8-NEXT:    v_sub_u16_e32 v8, 0, v3592; GFX8-NEXT:    v_sub_u16_e32 v9, 0, v2593; GFX8-NEXT:    v_sub_u16_e32 v10, 0, v1594; GFX8-NEXT:    v_sub_u16_e32 v11, 0, v0595; GFX8-NEXT:    v_max_i16_sdwa v5, v3, v5 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD596; GFX8-NEXT:    v_max_i16_sdwa v6, v2, v6 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD597; GFX8-NEXT:    v_max_i16_sdwa v7, v1, v7 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD598; GFX8-NEXT:    v_max_i16_sdwa v4, v0, v4 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD599; GFX8-NEXT:    v_max_i16_e32 v0, v0, v11600; GFX8-NEXT:    v_max_i16_e32 v1, v1, v10601; GFX8-NEXT:    v_max_i16_e32 v2, v2, v9602; GFX8-NEXT:    v_max_i16_e32 v3, v3, v8603; GFX8-NEXT:    v_or_b32_e32 v0, v0, v4604; GFX8-NEXT:    v_or_b32_e32 v1, v1, v7605; GFX8-NEXT:    v_or_b32_e32 v2, v2, v6606; GFX8-NEXT:    v_or_b32_e32 v3, v3, v5607; GFX8-NEXT:    s_setpc_b64 s[30:31]608;609; GFX9-LABEL: v_abs_v8i16:610; GFX9:       ; %bb.0:611; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)612; GFX9-NEXT:    v_pk_sub_i16 v4, 0, v0613; GFX9-NEXT:    v_pk_max_i16 v0, v0, v4614; GFX9-NEXT:    v_pk_sub_i16 v4, 0, v1615; GFX9-NEXT:    v_pk_max_i16 v1, v1, v4616; GFX9-NEXT:    v_pk_sub_i16 v4, 0, v2617; GFX9-NEXT:    v_pk_max_i16 v2, v2, v4618; GFX9-NEXT:    v_pk_sub_i16 v4, 0, v3619; GFX9-NEXT:    v_pk_max_i16 v3, v3, v4620; GFX9-NEXT:    s_setpc_b64 s[30:31]621;622; GFX10-LABEL: v_abs_v8i16:623; GFX10:       ; %bb.0:624; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)625; GFX10-NEXT:    v_pk_sub_i16 v4, 0, v0626; GFX10-NEXT:    v_pk_sub_i16 v5, 0, v1627; GFX10-NEXT:    v_pk_sub_i16 v6, 0, v2628; GFX10-NEXT:    v_pk_sub_i16 v7, 0, v3629; GFX10-NEXT:    v_pk_max_i16 v0, v0, v4630; GFX10-NEXT:    v_pk_max_i16 v1, v1, v5631; GFX10-NEXT:    v_pk_max_i16 v2, v2, v6632; GFX10-NEXT:    v_pk_max_i16 v3, v3, v7633; GFX10-NEXT:    s_setpc_b64 s[30:31]634;635; GFX11-LABEL: v_abs_v8i16:636; GFX11:       ; %bb.0:637; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)638; GFX11-NEXT:    v_pk_sub_i16 v4, 0, v0639; GFX11-NEXT:    v_pk_sub_i16 v5, 0, v1640; GFX11-NEXT:    v_pk_sub_i16 v6, 0, v2641; GFX11-NEXT:    v_pk_sub_i16 v7, 0, v3642; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4)643; GFX11-NEXT:    v_pk_max_i16 v0, v0, v4644; GFX11-NEXT:    v_pk_max_i16 v1, v1, v5645; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4)646; GFX11-NEXT:    v_pk_max_i16 v2, v2, v6647; GFX11-NEXT:    v_pk_max_i16 v3, v3, v7648; GFX11-NEXT:    s_setpc_b64 s[30:31]649;650; GFX12-LABEL: v_abs_v8i16:651; GFX12:       ; %bb.0:652; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0653; GFX12-NEXT:    s_wait_expcnt 0x0654; GFX12-NEXT:    s_wait_samplecnt 0x0655; GFX12-NEXT:    s_wait_bvhcnt 0x0656; GFX12-NEXT:    s_wait_kmcnt 0x0657; GFX12-NEXT:    v_pk_sub_i16 v4, 0, v0658; GFX12-NEXT:    v_pk_sub_i16 v5, 0, v1659; GFX12-NEXT:    v_pk_sub_i16 v6, 0, v2660; GFX12-NEXT:    v_pk_sub_i16 v7, 0, v3661; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4)662; GFX12-NEXT:    v_pk_max_i16 v0, v0, v4663; GFX12-NEXT:    v_pk_max_i16 v1, v1, v5664; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4)665; GFX12-NEXT:    v_pk_max_i16 v2, v2, v6666; GFX12-NEXT:    v_pk_max_i16 v3, v3, v7667; GFX12-NEXT:    s_setpc_b64 s[30:31]668  %res = call <8 x i16> @llvm.abs.v8i16(<8 x i16> %arg, i1 false)669  ret <8 x i16> %res670}671 672 673define <16 x i16> @v_abs_v16i16(<16 x i16> %arg) {674; GFX6-LABEL: v_abs_v16i16:675; GFX6:       ; %bb.0:676; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)677; GFX6-NEXT:    v_bfe_i32 v0, v0, 0, 16678; GFX6-NEXT:    v_bfe_i32 v1, v1, 0, 16679; GFX6-NEXT:    v_sub_i32_e32 v16, vcc, 0, v0680; GFX6-NEXT:    v_bfe_i32 v4, v4, 0, 16681; GFX6-NEXT:    v_max_i32_e32 v0, v16, v0682; GFX6-NEXT:    v_sub_i32_e32 v16, vcc, 0, v1683; GFX6-NEXT:    v_bfe_i32 v5, v5, 0, 16684; GFX6-NEXT:    v_max_i32_e32 v1, v16, v1685; GFX6-NEXT:    v_sub_i32_e32 v16, vcc, 0, v4686; GFX6-NEXT:    v_bfe_i32 v8, v8, 0, 16687; GFX6-NEXT:    v_max_i32_e32 v4, v16, v4688; GFX6-NEXT:    v_sub_i32_e32 v16, vcc, 0, v5689; GFX6-NEXT:    v_bfe_i32 v9, v9, 0, 16690; GFX6-NEXT:    v_max_i32_e32 v5, v16, v5691; GFX6-NEXT:    v_sub_i32_e32 v16, vcc, 0, v8692; GFX6-NEXT:    v_bfe_i32 v12, v12, 0, 16693; GFX6-NEXT:    v_max_i32_e32 v8, v16, v8694; GFX6-NEXT:    v_sub_i32_e32 v16, vcc, 0, v9695; GFX6-NEXT:    v_bfe_i32 v13, v13, 0, 16696; GFX6-NEXT:    v_max_i32_e32 v9, v16, v9697; GFX6-NEXT:    v_sub_i32_e32 v16, vcc, 0, v12698; GFX6-NEXT:    v_bfe_i32 v14, v14, 0, 16699; GFX6-NEXT:    v_max_i32_e32 v12, v16, v12700; GFX6-NEXT:    v_sub_i32_e32 v16, vcc, 0, v13701; GFX6-NEXT:    v_bfe_i32 v15, v15, 0, 16702; GFX6-NEXT:    v_max_i32_e32 v13, v16, v13703; GFX6-NEXT:    v_sub_i32_e32 v16, vcc, 0, v14704; GFX6-NEXT:    v_max_i32_e32 v14, v16, v14705; GFX6-NEXT:    v_sub_i32_e32 v16, vcc, 0, v15706; GFX6-NEXT:    v_max_i32_e32 v15, v16, v15707; GFX6-NEXT:    v_bfe_i32 v10, v10, 0, 16708; GFX6-NEXT:    v_lshlrev_b32_e32 v16, 16, v15709; GFX6-NEXT:    v_bfe_i32 v11, v11, 0, 16710; GFX6-NEXT:    v_or_b32_e32 v14, v14, v16711; GFX6-NEXT:    v_sub_i32_e32 v16, vcc, 0, v10712; GFX6-NEXT:    v_max_i32_e32 v10, v16, v10713; GFX6-NEXT:    v_sub_i32_e32 v16, vcc, 0, v11714; GFX6-NEXT:    v_max_i32_e32 v11, v16, v11715; GFX6-NEXT:    v_bfe_i32 v6, v6, 0, 16716; GFX6-NEXT:    v_lshlrev_b32_e32 v16, 16, v11717; GFX6-NEXT:    v_bfe_i32 v7, v7, 0, 16718; GFX6-NEXT:    v_or_b32_e32 v10, v10, v16719; GFX6-NEXT:    v_sub_i32_e32 v16, vcc, 0, v6720; GFX6-NEXT:    v_max_i32_e32 v6, v16, v6721; GFX6-NEXT:    v_sub_i32_e32 v16, vcc, 0, v7722; GFX6-NEXT:    v_max_i32_e32 v7, v16, v7723; GFX6-NEXT:    v_bfe_i32 v2, v2, 0, 16724; GFX6-NEXT:    v_lshlrev_b32_e32 v16, 16, v7725; GFX6-NEXT:    v_bfe_i32 v3, v3, 0, 16726; GFX6-NEXT:    v_or_b32_e32 v6, v6, v16727; GFX6-NEXT:    v_sub_i32_e32 v16, vcc, 0, v2728; GFX6-NEXT:    v_max_i32_e32 v2, v16, v2729; GFX6-NEXT:    v_sub_i32_e32 v16, vcc, 0, v3730; GFX6-NEXT:    v_max_i32_e32 v3, v16, v3731; GFX6-NEXT:    v_lshlrev_b32_e32 v16, 16, v3732; GFX6-NEXT:    v_lshlrev_b32_e32 v1, 16, v1733; GFX6-NEXT:    v_lshlrev_b32_e32 v5, 16, v5734; GFX6-NEXT:    v_lshlrev_b32_e32 v9, 16, v9735; GFX6-NEXT:    v_lshlrev_b32_e32 v13, 16, v13736; GFX6-NEXT:    v_or_b32_e32 v2, v2, v16737; GFX6-NEXT:    v_or_b32_e32 v0, v0, v1738; GFX6-NEXT:    v_or_b32_e32 v4, v4, v5739; GFX6-NEXT:    v_or_b32_e32 v8, v8, v9740; GFX6-NEXT:    v_or_b32_e32 v12, v12, v13741; GFX6-NEXT:    v_alignbit_b32 v1, v2, v1, 16742; GFX6-NEXT:    v_alignbit_b32 v5, v6, v5, 16743; GFX6-NEXT:    v_alignbit_b32 v9, v10, v9, 16744; GFX6-NEXT:    v_alignbit_b32 v13, v14, v13, 16745; GFX6-NEXT:    s_setpc_b64 s[30:31]746;747; GFX7-LABEL: v_abs_v16i16:748; GFX7:       ; %bb.0:749; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)750; GFX7-NEXT:    v_bfe_i32 v0, v0, 0, 16751; GFX7-NEXT:    v_bfe_i32 v1, v1, 0, 16752; GFX7-NEXT:    v_sub_i32_e32 v16, vcc, 0, v0753; GFX7-NEXT:    v_bfe_i32 v4, v4, 0, 16754; GFX7-NEXT:    v_max_i32_e32 v0, v16, v0755; GFX7-NEXT:    v_sub_i32_e32 v16, vcc, 0, v1756; GFX7-NEXT:    v_bfe_i32 v5, v5, 0, 16757; GFX7-NEXT:    v_max_i32_e32 v1, v16, v1758; GFX7-NEXT:    v_sub_i32_e32 v16, vcc, 0, v4759; GFX7-NEXT:    v_bfe_i32 v8, v8, 0, 16760; GFX7-NEXT:    v_max_i32_e32 v4, v16, v4761; GFX7-NEXT:    v_sub_i32_e32 v16, vcc, 0, v5762; GFX7-NEXT:    v_bfe_i32 v9, v9, 0, 16763; GFX7-NEXT:    v_max_i32_e32 v5, v16, v5764; GFX7-NEXT:    v_sub_i32_e32 v16, vcc, 0, v8765; GFX7-NEXT:    v_bfe_i32 v12, v12, 0, 16766; GFX7-NEXT:    v_max_i32_e32 v8, v16, v8767; GFX7-NEXT:    v_sub_i32_e32 v16, vcc, 0, v9768; GFX7-NEXT:    v_bfe_i32 v13, v13, 0, 16769; GFX7-NEXT:    v_max_i32_e32 v9, v16, v9770; GFX7-NEXT:    v_sub_i32_e32 v16, vcc, 0, v12771; GFX7-NEXT:    v_bfe_i32 v14, v14, 0, 16772; GFX7-NEXT:    v_max_i32_e32 v12, v16, v12773; GFX7-NEXT:    v_sub_i32_e32 v16, vcc, 0, v13774; GFX7-NEXT:    v_bfe_i32 v15, v15, 0, 16775; GFX7-NEXT:    v_max_i32_e32 v13, v16, v13776; GFX7-NEXT:    v_sub_i32_e32 v16, vcc, 0, v14777; GFX7-NEXT:    v_max_i32_e32 v14, v16, v14778; GFX7-NEXT:    v_sub_i32_e32 v16, vcc, 0, v15779; GFX7-NEXT:    v_max_i32_e32 v15, v16, v15780; GFX7-NEXT:    v_bfe_i32 v10, v10, 0, 16781; GFX7-NEXT:    v_lshlrev_b32_e32 v16, 16, v15782; GFX7-NEXT:    v_bfe_i32 v11, v11, 0, 16783; GFX7-NEXT:    v_or_b32_e32 v14, v14, v16784; GFX7-NEXT:    v_sub_i32_e32 v16, vcc, 0, v10785; GFX7-NEXT:    v_max_i32_e32 v10, v16, v10786; GFX7-NEXT:    v_sub_i32_e32 v16, vcc, 0, v11787; GFX7-NEXT:    v_max_i32_e32 v11, v16, v11788; GFX7-NEXT:    v_bfe_i32 v6, v6, 0, 16789; GFX7-NEXT:    v_lshlrev_b32_e32 v16, 16, v11790; GFX7-NEXT:    v_bfe_i32 v7, v7, 0, 16791; GFX7-NEXT:    v_or_b32_e32 v10, v10, v16792; GFX7-NEXT:    v_sub_i32_e32 v16, vcc, 0, v6793; GFX7-NEXT:    v_max_i32_e32 v6, v16, v6794; GFX7-NEXT:    v_sub_i32_e32 v16, vcc, 0, v7795; GFX7-NEXT:    v_max_i32_e32 v7, v16, v7796; GFX7-NEXT:    v_bfe_i32 v2, v2, 0, 16797; GFX7-NEXT:    v_lshlrev_b32_e32 v16, 16, v7798; GFX7-NEXT:    v_bfe_i32 v3, v3, 0, 16799; GFX7-NEXT:    v_or_b32_e32 v6, v6, v16800; GFX7-NEXT:    v_sub_i32_e32 v16, vcc, 0, v2801; GFX7-NEXT:    v_max_i32_e32 v2, v16, v2802; GFX7-NEXT:    v_sub_i32_e32 v16, vcc, 0, v3803; GFX7-NEXT:    v_max_i32_e32 v3, v16, v3804; GFX7-NEXT:    v_lshlrev_b32_e32 v16, 16, v3805; GFX7-NEXT:    v_lshlrev_b32_e32 v1, 16, v1806; GFX7-NEXT:    v_lshlrev_b32_e32 v5, 16, v5807; GFX7-NEXT:    v_lshlrev_b32_e32 v9, 16, v9808; GFX7-NEXT:    v_lshlrev_b32_e32 v13, 16, v13809; GFX7-NEXT:    v_or_b32_e32 v2, v2, v16810; GFX7-NEXT:    v_or_b32_e32 v0, v0, v1811; GFX7-NEXT:    v_or_b32_e32 v4, v4, v5812; GFX7-NEXT:    v_or_b32_e32 v8, v8, v9813; GFX7-NEXT:    v_or_b32_e32 v12, v12, v13814; GFX7-NEXT:    v_alignbit_b32 v1, v2, v1, 16815; GFX7-NEXT:    v_alignbit_b32 v5, v6, v5, 16816; GFX7-NEXT:    v_alignbit_b32 v9, v10, v9, 16817; GFX7-NEXT:    v_alignbit_b32 v13, v14, v13, 16818; GFX7-NEXT:    s_setpc_b64 s[30:31]819;820; GFX8-LABEL: v_abs_v16i16:821; GFX8:       ; %bb.0:822; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)823; GFX8-NEXT:    v_mov_b32_e32 v8, 0824; GFX8-NEXT:    v_sub_u16_sdwa v9, v8, v7 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1825; GFX8-NEXT:    v_sub_u16_sdwa v10, v8, v6 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1826; GFX8-NEXT:    v_sub_u16_sdwa v11, v8, v5 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1827; GFX8-NEXT:    v_sub_u16_sdwa v12, v8, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1828; GFX8-NEXT:    v_sub_u16_sdwa v13, v8, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1829; GFX8-NEXT:    v_sub_u16_sdwa v14, v8, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1830; GFX8-NEXT:    v_sub_u16_sdwa v15, v8, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1831; GFX8-NEXT:    v_sub_u16_sdwa v8, v8, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1832; GFX8-NEXT:    v_sub_u16_e32 v19, 0, v0833; GFX8-NEXT:    v_max_i16_sdwa v8, v0, v8 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD834; GFX8-NEXT:    v_max_i16_e32 v0, v0, v19835; GFX8-NEXT:    v_or_b32_e32 v0, v0, v8836; GFX8-NEXT:    v_sub_u16_e32 v8, 0, v1837; GFX8-NEXT:    v_max_i16_sdwa v15, v1, v15 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD838; GFX8-NEXT:    v_max_i16_e32 v1, v1, v8839; GFX8-NEXT:    v_sub_u16_e32 v16, 0, v7840; GFX8-NEXT:    v_sub_u16_e32 v17, 0, v6841; GFX8-NEXT:    v_sub_u16_e32 v18, 0, v5842; GFX8-NEXT:    v_sub_u16_e32 v19, 0, v4843; GFX8-NEXT:    v_sub_u16_e32 v8, 0, v3844; GFX8-NEXT:    v_or_b32_e32 v1, v1, v15845; GFX8-NEXT:    v_sub_u16_e32 v15, 0, v2846; GFX8-NEXT:    v_max_i16_sdwa v9, v7, v9 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD847; GFX8-NEXT:    v_max_i16_sdwa v10, v6, v10 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD848; GFX8-NEXT:    v_max_i16_sdwa v11, v5, v11 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD849; GFX8-NEXT:    v_max_i16_sdwa v12, v4, v12 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD850; GFX8-NEXT:    v_max_i16_sdwa v13, v3, v13 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD851; GFX8-NEXT:    v_max_i16_sdwa v14, v2, v14 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD852; GFX8-NEXT:    v_max_i16_e32 v2, v2, v15853; GFX8-NEXT:    v_max_i16_e32 v3, v3, v8854; GFX8-NEXT:    v_max_i16_e32 v4, v4, v19855; GFX8-NEXT:    v_max_i16_e32 v5, v5, v18856; GFX8-NEXT:    v_max_i16_e32 v6, v6, v17857; GFX8-NEXT:    v_max_i16_e32 v7, v7, v16858; GFX8-NEXT:    v_or_b32_e32 v2, v2, v14859; GFX8-NEXT:    v_or_b32_e32 v3, v3, v13860; GFX8-NEXT:    v_or_b32_e32 v4, v4, v12861; GFX8-NEXT:    v_or_b32_e32 v5, v5, v11862; GFX8-NEXT:    v_or_b32_e32 v6, v6, v10863; GFX8-NEXT:    v_or_b32_e32 v7, v7, v9864; GFX8-NEXT:    s_setpc_b64 s[30:31]865;866; GFX9-LABEL: v_abs_v16i16:867; GFX9:       ; %bb.0:868; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)869; GFX9-NEXT:    v_pk_sub_i16 v8, 0, v0870; GFX9-NEXT:    v_pk_max_i16 v0, v0, v8871; GFX9-NEXT:    v_pk_sub_i16 v8, 0, v1872; GFX9-NEXT:    v_pk_max_i16 v1, v1, v8873; GFX9-NEXT:    v_pk_sub_i16 v8, 0, v2874; GFX9-NEXT:    v_pk_max_i16 v2, v2, v8875; GFX9-NEXT:    v_pk_sub_i16 v8, 0, v3876; GFX9-NEXT:    v_pk_max_i16 v3, v3, v8877; GFX9-NEXT:    v_pk_sub_i16 v8, 0, v4878; GFX9-NEXT:    v_pk_max_i16 v4, v4, v8879; GFX9-NEXT:    v_pk_sub_i16 v8, 0, v5880; GFX9-NEXT:    v_pk_max_i16 v5, v5, v8881; GFX9-NEXT:    v_pk_sub_i16 v8, 0, v6882; GFX9-NEXT:    v_pk_max_i16 v6, v6, v8883; GFX9-NEXT:    v_pk_sub_i16 v8, 0, v7884; GFX9-NEXT:    v_pk_max_i16 v7, v7, v8885; GFX9-NEXT:    s_setpc_b64 s[30:31]886;887; GFX10-LABEL: v_abs_v16i16:888; GFX10:       ; %bb.0:889; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)890; GFX10-NEXT:    v_pk_sub_i16 v8, 0, v0891; GFX10-NEXT:    v_pk_sub_i16 v9, 0, v1892; GFX10-NEXT:    v_pk_sub_i16 v10, 0, v2893; GFX10-NEXT:    v_pk_sub_i16 v11, 0, v6894; GFX10-NEXT:    v_pk_sub_i16 v12, 0, v7895; GFX10-NEXT:    v_pk_max_i16 v0, v0, v8896; GFX10-NEXT:    v_pk_max_i16 v1, v1, v9897; GFX10-NEXT:    v_pk_max_i16 v2, v2, v10898; GFX10-NEXT:    v_pk_sub_i16 v8, 0, v3899; GFX10-NEXT:    v_pk_sub_i16 v9, 0, v4900; GFX10-NEXT:    v_pk_sub_i16 v10, 0, v5901; GFX10-NEXT:    v_pk_max_i16 v6, v6, v11902; GFX10-NEXT:    v_pk_max_i16 v7, v7, v12903; GFX10-NEXT:    v_pk_max_i16 v3, v3, v8904; GFX10-NEXT:    v_pk_max_i16 v4, v4, v9905; GFX10-NEXT:    v_pk_max_i16 v5, v5, v10906; GFX10-NEXT:    s_setpc_b64 s[30:31]907;908; GFX11-LABEL: v_abs_v16i16:909; GFX11:       ; %bb.0:910; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)911; GFX11-NEXT:    v_pk_sub_i16 v8, 0, v0912; GFX11-NEXT:    v_pk_sub_i16 v9, 0, v1913; GFX11-NEXT:    v_pk_sub_i16 v10, 0, v2914; GFX11-NEXT:    v_pk_sub_i16 v11, 0, v6915; GFX11-NEXT:    v_pk_sub_i16 v12, 0, v7916; GFX11-NEXT:    v_pk_max_i16 v0, v0, v8917; GFX11-NEXT:    v_pk_max_i16 v1, v1, v9918; GFX11-NEXT:    v_pk_max_i16 v2, v2, v10919; GFX11-NEXT:    v_pk_sub_i16 v8, 0, v3920; GFX11-NEXT:    v_pk_sub_i16 v9, 0, v4921; GFX11-NEXT:    v_pk_sub_i16 v10, 0, v5922; GFX11-NEXT:    v_pk_max_i16 v6, v6, v11923; GFX11-NEXT:    v_pk_max_i16 v7, v7, v12924; GFX11-NEXT:    v_pk_max_i16 v3, v3, v8925; GFX11-NEXT:    v_pk_max_i16 v4, v4, v9926; GFX11-NEXT:    v_pk_max_i16 v5, v5, v10927; GFX11-NEXT:    s_setpc_b64 s[30:31]928;929; GFX12-LABEL: v_abs_v16i16:930; GFX12:       ; %bb.0:931; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0932; GFX12-NEXT:    s_wait_expcnt 0x0933; GFX12-NEXT:    s_wait_samplecnt 0x0934; GFX12-NEXT:    s_wait_bvhcnt 0x0935; GFX12-NEXT:    s_wait_kmcnt 0x0936; GFX12-NEXT:    v_pk_sub_i16 v8, 0, v0937; GFX12-NEXT:    v_pk_sub_i16 v9, 0, v1938; GFX12-NEXT:    v_pk_sub_i16 v10, 0, v2939; GFX12-NEXT:    v_pk_sub_i16 v11, 0, v6940; GFX12-NEXT:    v_pk_sub_i16 v12, 0, v7941; GFX12-NEXT:    v_pk_max_i16 v0, v0, v8942; GFX12-NEXT:    v_pk_max_i16 v1, v1, v9943; GFX12-NEXT:    v_pk_max_i16 v2, v2, v10944; GFX12-NEXT:    v_pk_sub_i16 v8, 0, v3945; GFX12-NEXT:    v_pk_sub_i16 v9, 0, v4946; GFX12-NEXT:    v_pk_sub_i16 v10, 0, v5947; GFX12-NEXT:    v_pk_max_i16 v6, v6, v11948; GFX12-NEXT:    v_pk_max_i16 v7, v7, v12949; GFX12-NEXT:    v_pk_max_i16 v3, v3, v8950; GFX12-NEXT:    v_pk_max_i16 v4, v4, v9951; GFX12-NEXT:    v_pk_max_i16 v5, v5, v10952; GFX12-NEXT:    s_setpc_b64 s[30:31]953  %res = call <16 x i16> @llvm.abs.v16i16(<16 x i16> %arg, i1 false)954  ret <16 x i16> %res955}956 957define <32 x i16> @v_abs_v32i16(<32 x i16> %arg) {958; GFX6-LABEL: v_abs_v32i16:959; GFX6:       ; %bb.0:960; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)961; GFX6-NEXT:    v_bfe_i32 v0, v0, 0, 16962; GFX6-NEXT:    v_sub_i32_e32 v31, vcc, 0, v0963; GFX6-NEXT:    v_bfe_i32 v1, v1, 0, 16964; GFX6-NEXT:    v_max_i32_e32 v0, v31, v0965; GFX6-NEXT:    v_sub_i32_e32 v31, vcc, 0, v1966; GFX6-NEXT:    v_bfe_i32 v4, v4, 0, 16967; GFX6-NEXT:    v_max_i32_e32 v1, v31, v1968; GFX6-NEXT:    v_sub_i32_e32 v31, vcc, 0, v4969; GFX6-NEXT:    v_bfe_i32 v5, v5, 0, 16970; GFX6-NEXT:    v_max_i32_e32 v4, v31, v4971; GFX6-NEXT:    v_sub_i32_e32 v31, vcc, 0, v5972; GFX6-NEXT:    v_bfe_i32 v8, v8, 0, 16973; GFX6-NEXT:    v_max_i32_e32 v5, v31, v5974; GFX6-NEXT:    v_sub_i32_e32 v31, vcc, 0, v8975; GFX6-NEXT:    v_bfe_i32 v9, v9, 0, 16976; GFX6-NEXT:    v_max_i32_e32 v8, v31, v8977; GFX6-NEXT:    v_sub_i32_e32 v31, vcc, 0, v9978; GFX6-NEXT:    v_bfe_i32 v12, v12, 0, 16979; GFX6-NEXT:    v_max_i32_e32 v9, v31, v9980; GFX6-NEXT:    v_sub_i32_e32 v31, vcc, 0, v12981; GFX6-NEXT:    v_bfe_i32 v13, v13, 0, 16982; GFX6-NEXT:    v_max_i32_e32 v12, v31, v12983; GFX6-NEXT:    v_sub_i32_e32 v31, vcc, 0, v13984; GFX6-NEXT:    v_bfe_i32 v16, v16, 0, 16985; GFX6-NEXT:    v_max_i32_e32 v13, v31, v13986; GFX6-NEXT:    v_sub_i32_e32 v31, vcc, 0, v16987; GFX6-NEXT:    v_bfe_i32 v17, v17, 0, 16988; GFX6-NEXT:    v_max_i32_e32 v16, v31, v16989; GFX6-NEXT:    v_sub_i32_e32 v31, vcc, 0, v17990; GFX6-NEXT:    v_bfe_i32 v20, v20, 0, 16991; GFX6-NEXT:    v_max_i32_e32 v17, v31, v17992; GFX6-NEXT:    v_sub_i32_e32 v31, vcc, 0, v20993; GFX6-NEXT:    v_bfe_i32 v21, v21, 0, 16994; GFX6-NEXT:    v_max_i32_e32 v20, v31, v20995; GFX6-NEXT:    v_sub_i32_e32 v31, vcc, 0, v21996; GFX6-NEXT:    v_bfe_i32 v24, v24, 0, 16997; GFX6-NEXT:    v_max_i32_e32 v21, v31, v21998; GFX6-NEXT:    v_sub_i32_e32 v31, vcc, 0, v24999; GFX6-NEXT:    v_bfe_i32 v25, v25, 0, 161000; GFX6-NEXT:    v_max_i32_e32 v24, v31, v241001; GFX6-NEXT:    v_sub_i32_e32 v31, vcc, 0, v251002; GFX6-NEXT:    v_bfe_i32 v28, v28, 0, 161003; GFX6-NEXT:    v_max_i32_e32 v25, v31, v251004; GFX6-NEXT:    v_sub_i32_e32 v31, vcc, 0, v281005; GFX6-NEXT:    v_bfe_i32 v29, v29, 0, 161006; GFX6-NEXT:    v_max_i32_e32 v28, v31, v281007; GFX6-NEXT:    v_sub_i32_e32 v31, vcc, 0, v291008; GFX6-NEXT:    v_bfe_i32 v30, v30, 0, 161009; GFX6-NEXT:    v_max_i32_e32 v29, v31, v291010; GFX6-NEXT:    v_sub_i32_e32 v31, vcc, 0, v301011; GFX6-NEXT:    v_max_i32_e32 v30, v31, v301012; GFX6-NEXT:    buffer_load_dword v31, off, s[0:3], s321013; GFX6-NEXT:    v_bfe_i32 v26, v26, 0, 161014; GFX6-NEXT:    v_bfe_i32 v27, v27, 0, 161015; GFX6-NEXT:    v_bfe_i32 v22, v22, 0, 161016; GFX6-NEXT:    v_bfe_i32 v23, v23, 0, 161017; GFX6-NEXT:    v_bfe_i32 v18, v18, 0, 161018; GFX6-NEXT:    v_bfe_i32 v19, v19, 0, 161019; GFX6-NEXT:    v_bfe_i32 v14, v14, 0, 161020; GFX6-NEXT:    v_bfe_i32 v15, v15, 0, 161021; GFX6-NEXT:    v_bfe_i32 v10, v10, 0, 161022; GFX6-NEXT:    v_bfe_i32 v11, v11, 0, 161023; GFX6-NEXT:    v_bfe_i32 v6, v6, 0, 161024; GFX6-NEXT:    v_bfe_i32 v7, v7, 0, 161025; GFX6-NEXT:    v_bfe_i32 v2, v2, 0, 161026; GFX6-NEXT:    v_bfe_i32 v3, v3, 0, 161027; GFX6-NEXT:    v_lshlrev_b32_e32 v1, 16, v11028; GFX6-NEXT:    v_lshlrev_b32_e32 v5, 16, v51029; GFX6-NEXT:    v_lshlrev_b32_e32 v9, 16, v91030; GFX6-NEXT:    v_lshlrev_b32_e32 v13, 16, v131031; GFX6-NEXT:    v_lshlrev_b32_e32 v17, 16, v171032; GFX6-NEXT:    v_lshlrev_b32_e32 v21, 16, v211033; GFX6-NEXT:    v_lshlrev_b32_e32 v25, 16, v251034; GFX6-NEXT:    v_lshlrev_b32_e32 v29, 16, v291035; GFX6-NEXT:    v_or_b32_e32 v0, v0, v11036; GFX6-NEXT:    v_or_b32_e32 v4, v4, v51037; GFX6-NEXT:    v_or_b32_e32 v8, v8, v91038; GFX6-NEXT:    v_or_b32_e32 v12, v12, v131039; GFX6-NEXT:    v_or_b32_e32 v16, v16, v171040; GFX6-NEXT:    v_or_b32_e32 v20, v20, v211041; GFX6-NEXT:    v_or_b32_e32 v24, v24, v251042; GFX6-NEXT:    v_or_b32_e32 v28, v28, v291043; GFX6-NEXT:    s_waitcnt vmcnt(0)1044; GFX6-NEXT:    v_bfe_i32 v31, v31, 0, 161045; GFX6-NEXT:    v_sub_i32_e32 v32, vcc, 0, v311046; GFX6-NEXT:    v_max_i32_e32 v31, v32, v311047; GFX6-NEXT:    v_lshlrev_b32_e32 v32, 16, v311048; GFX6-NEXT:    v_or_b32_e32 v30, v30, v321049; GFX6-NEXT:    v_sub_i32_e32 v32, vcc, 0, v261050; GFX6-NEXT:    v_max_i32_e32 v26, v32, v261051; GFX6-NEXT:    v_sub_i32_e32 v32, vcc, 0, v271052; GFX6-NEXT:    v_max_i32_e32 v27, v32, v271053; GFX6-NEXT:    v_lshlrev_b32_e32 v32, 16, v271054; GFX6-NEXT:    v_or_b32_e32 v26, v26, v321055; GFX6-NEXT:    v_sub_i32_e32 v32, vcc, 0, v221056; GFX6-NEXT:    v_max_i32_e32 v22, v32, v221057; GFX6-NEXT:    v_sub_i32_e32 v32, vcc, 0, v231058; GFX6-NEXT:    v_max_i32_e32 v23, v32, v231059; GFX6-NEXT:    v_lshlrev_b32_e32 v32, 16, v231060; GFX6-NEXT:    v_or_b32_e32 v22, v22, v321061; GFX6-NEXT:    v_sub_i32_e32 v32, vcc, 0, v181062; GFX6-NEXT:    v_max_i32_e32 v18, v32, v181063; GFX6-NEXT:    v_sub_i32_e32 v32, vcc, 0, v191064; GFX6-NEXT:    v_max_i32_e32 v19, v32, v191065; GFX6-NEXT:    v_lshlrev_b32_e32 v32, 16, v191066; GFX6-NEXT:    v_or_b32_e32 v18, v18, v321067; GFX6-NEXT:    v_sub_i32_e32 v32, vcc, 0, v141068; GFX6-NEXT:    v_max_i32_e32 v14, v32, v141069; GFX6-NEXT:    v_sub_i32_e32 v32, vcc, 0, v151070; GFX6-NEXT:    v_max_i32_e32 v15, v32, v151071; GFX6-NEXT:    v_lshlrev_b32_e32 v32, 16, v151072; GFX6-NEXT:    v_or_b32_e32 v14, v14, v321073; GFX6-NEXT:    v_sub_i32_e32 v32, vcc, 0, v101074; GFX6-NEXT:    v_max_i32_e32 v10, v32, v101075; GFX6-NEXT:    v_sub_i32_e32 v32, vcc, 0, v111076; GFX6-NEXT:    v_max_i32_e32 v11, v32, v111077; GFX6-NEXT:    v_lshlrev_b32_e32 v32, 16, v111078; GFX6-NEXT:    v_or_b32_e32 v10, v10, v321079; GFX6-NEXT:    v_sub_i32_e32 v32, vcc, 0, v61080; GFX6-NEXT:    v_max_i32_e32 v6, v32, v61081; GFX6-NEXT:    v_sub_i32_e32 v32, vcc, 0, v71082; GFX6-NEXT:    v_max_i32_e32 v7, v32, v71083; GFX6-NEXT:    v_lshlrev_b32_e32 v32, 16, v71084; GFX6-NEXT:    v_or_b32_e32 v6, v6, v321085; GFX6-NEXT:    v_sub_i32_e32 v32, vcc, 0, v21086; GFX6-NEXT:    v_max_i32_e32 v2, v32, v21087; GFX6-NEXT:    v_sub_i32_e32 v32, vcc, 0, v31088; GFX6-NEXT:    v_max_i32_e32 v3, v32, v31089; GFX6-NEXT:    v_lshlrev_b32_e32 v32, 16, v31090; GFX6-NEXT:    v_or_b32_e32 v2, v2, v321091; GFX6-NEXT:    v_alignbit_b32 v1, v2, v1, 161092; GFX6-NEXT:    v_alignbit_b32 v5, v6, v5, 161093; GFX6-NEXT:    v_alignbit_b32 v9, v10, v9, 161094; GFX6-NEXT:    v_alignbit_b32 v13, v14, v13, 161095; GFX6-NEXT:    v_alignbit_b32 v17, v18, v17, 161096; GFX6-NEXT:    v_alignbit_b32 v21, v22, v21, 161097; GFX6-NEXT:    v_alignbit_b32 v25, v26, v25, 161098; GFX6-NEXT:    v_alignbit_b32 v29, v30, v29, 161099; GFX6-NEXT:    s_setpc_b64 s[30:31]1100;1101; GFX7-LABEL: v_abs_v32i16:1102; GFX7:       ; %bb.0:1103; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1104; GFX7-NEXT:    v_bfe_i32 v0, v0, 0, 161105; GFX7-NEXT:    v_sub_i32_e32 v31, vcc, 0, v01106; GFX7-NEXT:    v_bfe_i32 v1, v1, 0, 161107; GFX7-NEXT:    v_max_i32_e32 v0, v31, v01108; GFX7-NEXT:    v_sub_i32_e32 v31, vcc, 0, v11109; GFX7-NEXT:    v_bfe_i32 v4, v4, 0, 161110; GFX7-NEXT:    v_max_i32_e32 v1, v31, v11111; GFX7-NEXT:    v_sub_i32_e32 v31, vcc, 0, v41112; GFX7-NEXT:    v_bfe_i32 v5, v5, 0, 161113; GFX7-NEXT:    v_max_i32_e32 v4, v31, v41114; GFX7-NEXT:    v_sub_i32_e32 v31, vcc, 0, v51115; GFX7-NEXT:    v_bfe_i32 v8, v8, 0, 161116; GFX7-NEXT:    v_max_i32_e32 v5, v31, v51117; GFX7-NEXT:    v_sub_i32_e32 v31, vcc, 0, v81118; GFX7-NEXT:    v_bfe_i32 v9, v9, 0, 161119; GFX7-NEXT:    v_max_i32_e32 v8, v31, v81120; GFX7-NEXT:    v_sub_i32_e32 v31, vcc, 0, v91121; GFX7-NEXT:    v_bfe_i32 v12, v12, 0, 161122; GFX7-NEXT:    v_max_i32_e32 v9, v31, v91123; GFX7-NEXT:    v_sub_i32_e32 v31, vcc, 0, v121124; GFX7-NEXT:    v_bfe_i32 v13, v13, 0, 161125; GFX7-NEXT:    v_max_i32_e32 v12, v31, v121126; GFX7-NEXT:    v_sub_i32_e32 v31, vcc, 0, v131127; GFX7-NEXT:    v_bfe_i32 v16, v16, 0, 161128; GFX7-NEXT:    v_max_i32_e32 v13, v31, v131129; GFX7-NEXT:    v_sub_i32_e32 v31, vcc, 0, v161130; GFX7-NEXT:    v_bfe_i32 v17, v17, 0, 161131; GFX7-NEXT:    v_max_i32_e32 v16, v31, v161132; GFX7-NEXT:    v_sub_i32_e32 v31, vcc, 0, v171133; GFX7-NEXT:    v_bfe_i32 v20, v20, 0, 161134; GFX7-NEXT:    v_max_i32_e32 v17, v31, v171135; GFX7-NEXT:    v_sub_i32_e32 v31, vcc, 0, v201136; GFX7-NEXT:    v_bfe_i32 v21, v21, 0, 161137; GFX7-NEXT:    v_max_i32_e32 v20, v31, v201138; GFX7-NEXT:    v_sub_i32_e32 v31, vcc, 0, v211139; GFX7-NEXT:    v_bfe_i32 v24, v24, 0, 161140; GFX7-NEXT:    v_max_i32_e32 v21, v31, v211141; GFX7-NEXT:    v_sub_i32_e32 v31, vcc, 0, v241142; GFX7-NEXT:    v_bfe_i32 v25, v25, 0, 161143; GFX7-NEXT:    v_max_i32_e32 v24, v31, v241144; GFX7-NEXT:    v_sub_i32_e32 v31, vcc, 0, v251145; GFX7-NEXT:    v_bfe_i32 v28, v28, 0, 161146; GFX7-NEXT:    v_max_i32_e32 v25, v31, v251147; GFX7-NEXT:    v_sub_i32_e32 v31, vcc, 0, v281148; GFX7-NEXT:    v_bfe_i32 v29, v29, 0, 161149; GFX7-NEXT:    v_max_i32_e32 v28, v31, v281150; GFX7-NEXT:    v_sub_i32_e32 v31, vcc, 0, v291151; GFX7-NEXT:    v_bfe_i32 v30, v30, 0, 161152; GFX7-NEXT:    v_max_i32_e32 v29, v31, v291153; GFX7-NEXT:    v_sub_i32_e32 v31, vcc, 0, v301154; GFX7-NEXT:    v_max_i32_e32 v30, v31, v301155; GFX7-NEXT:    buffer_load_dword v31, off, s[0:3], s321156; GFX7-NEXT:    v_bfe_i32 v26, v26, 0, 161157; GFX7-NEXT:    v_bfe_i32 v27, v27, 0, 161158; GFX7-NEXT:    v_bfe_i32 v22, v22, 0, 161159; GFX7-NEXT:    v_bfe_i32 v23, v23, 0, 161160; GFX7-NEXT:    v_bfe_i32 v18, v18, 0, 161161; GFX7-NEXT:    v_bfe_i32 v19, v19, 0, 161162; GFX7-NEXT:    v_bfe_i32 v14, v14, 0, 161163; GFX7-NEXT:    v_bfe_i32 v15, v15, 0, 161164; GFX7-NEXT:    v_bfe_i32 v10, v10, 0, 161165; GFX7-NEXT:    v_bfe_i32 v11, v11, 0, 161166; GFX7-NEXT:    v_bfe_i32 v6, v6, 0, 161167; GFX7-NEXT:    v_bfe_i32 v7, v7, 0, 161168; GFX7-NEXT:    v_bfe_i32 v2, v2, 0, 161169; GFX7-NEXT:    v_bfe_i32 v3, v3, 0, 161170; GFX7-NEXT:    v_lshlrev_b32_e32 v1, 16, v11171; GFX7-NEXT:    v_lshlrev_b32_e32 v5, 16, v51172; GFX7-NEXT:    v_lshlrev_b32_e32 v9, 16, v91173; GFX7-NEXT:    v_lshlrev_b32_e32 v13, 16, v131174; GFX7-NEXT:    v_lshlrev_b32_e32 v17, 16, v171175; GFX7-NEXT:    v_lshlrev_b32_e32 v21, 16, v211176; GFX7-NEXT:    v_lshlrev_b32_e32 v25, 16, v251177; GFX7-NEXT:    v_lshlrev_b32_e32 v29, 16, v291178; GFX7-NEXT:    v_or_b32_e32 v0, v0, v11179; GFX7-NEXT:    v_or_b32_e32 v4, v4, v51180; GFX7-NEXT:    v_or_b32_e32 v8, v8, v91181; GFX7-NEXT:    v_or_b32_e32 v12, v12, v131182; GFX7-NEXT:    v_or_b32_e32 v16, v16, v171183; GFX7-NEXT:    v_or_b32_e32 v20, v20, v211184; GFX7-NEXT:    v_or_b32_e32 v24, v24, v251185; GFX7-NEXT:    v_or_b32_e32 v28, v28, v291186; GFX7-NEXT:    s_waitcnt vmcnt(0)1187; GFX7-NEXT:    v_bfe_i32 v31, v31, 0, 161188; GFX7-NEXT:    v_sub_i32_e32 v32, vcc, 0, v311189; GFX7-NEXT:    v_max_i32_e32 v31, v32, v311190; GFX7-NEXT:    v_lshlrev_b32_e32 v32, 16, v311191; GFX7-NEXT:    v_or_b32_e32 v30, v30, v321192; GFX7-NEXT:    v_sub_i32_e32 v32, vcc, 0, v261193; GFX7-NEXT:    v_max_i32_e32 v26, v32, v261194; GFX7-NEXT:    v_sub_i32_e32 v32, vcc, 0, v271195; GFX7-NEXT:    v_max_i32_e32 v27, v32, v271196; GFX7-NEXT:    v_lshlrev_b32_e32 v32, 16, v271197; GFX7-NEXT:    v_or_b32_e32 v26, v26, v321198; GFX7-NEXT:    v_sub_i32_e32 v32, vcc, 0, v221199; GFX7-NEXT:    v_max_i32_e32 v22, v32, v221200; GFX7-NEXT:    v_sub_i32_e32 v32, vcc, 0, v231201; GFX7-NEXT:    v_max_i32_e32 v23, v32, v231202; GFX7-NEXT:    v_lshlrev_b32_e32 v32, 16, v231203; GFX7-NEXT:    v_or_b32_e32 v22, v22, v321204; GFX7-NEXT:    v_sub_i32_e32 v32, vcc, 0, v181205; GFX7-NEXT:    v_max_i32_e32 v18, v32, v181206; GFX7-NEXT:    v_sub_i32_e32 v32, vcc, 0, v191207; GFX7-NEXT:    v_max_i32_e32 v19, v32, v191208; GFX7-NEXT:    v_lshlrev_b32_e32 v32, 16, v191209; GFX7-NEXT:    v_or_b32_e32 v18, v18, v321210; GFX7-NEXT:    v_sub_i32_e32 v32, vcc, 0, v141211; GFX7-NEXT:    v_max_i32_e32 v14, v32, v141212; GFX7-NEXT:    v_sub_i32_e32 v32, vcc, 0, v151213; GFX7-NEXT:    v_max_i32_e32 v15, v32, v151214; GFX7-NEXT:    v_lshlrev_b32_e32 v32, 16, v151215; GFX7-NEXT:    v_or_b32_e32 v14, v14, v321216; GFX7-NEXT:    v_sub_i32_e32 v32, vcc, 0, v101217; GFX7-NEXT:    v_max_i32_e32 v10, v32, v101218; GFX7-NEXT:    v_sub_i32_e32 v32, vcc, 0, v111219; GFX7-NEXT:    v_max_i32_e32 v11, v32, v111220; GFX7-NEXT:    v_lshlrev_b32_e32 v32, 16, v111221; GFX7-NEXT:    v_or_b32_e32 v10, v10, v321222; GFX7-NEXT:    v_sub_i32_e32 v32, vcc, 0, v61223; GFX7-NEXT:    v_max_i32_e32 v6, v32, v61224; GFX7-NEXT:    v_sub_i32_e32 v32, vcc, 0, v71225; GFX7-NEXT:    v_max_i32_e32 v7, v32, v71226; GFX7-NEXT:    v_lshlrev_b32_e32 v32, 16, v71227; GFX7-NEXT:    v_or_b32_e32 v6, v6, v321228; GFX7-NEXT:    v_sub_i32_e32 v32, vcc, 0, v21229; GFX7-NEXT:    v_max_i32_e32 v2, v32, v21230; GFX7-NEXT:    v_sub_i32_e32 v32, vcc, 0, v31231; GFX7-NEXT:    v_max_i32_e32 v3, v32, v31232; GFX7-NEXT:    v_lshlrev_b32_e32 v32, 16, v31233; GFX7-NEXT:    v_or_b32_e32 v2, v2, v321234; GFX7-NEXT:    v_alignbit_b32 v1, v2, v1, 161235; GFX7-NEXT:    v_alignbit_b32 v5, v6, v5, 161236; GFX7-NEXT:    v_alignbit_b32 v9, v10, v9, 161237; GFX7-NEXT:    v_alignbit_b32 v13, v14, v13, 161238; GFX7-NEXT:    v_alignbit_b32 v17, v18, v17, 161239; GFX7-NEXT:    v_alignbit_b32 v21, v22, v21, 161240; GFX7-NEXT:    v_alignbit_b32 v25, v26, v25, 161241; GFX7-NEXT:    v_alignbit_b32 v29, v30, v29, 161242; GFX7-NEXT:    s_setpc_b64 s[30:31]1243;1244; GFX8-LABEL: v_abs_v32i16:1245; GFX8:       ; %bb.0:1246; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1247; GFX8-NEXT:    v_mov_b32_e32 v16, 01248; GFX8-NEXT:    v_sub_u16_sdwa v18, v16, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_11249; GFX8-NEXT:    v_sub_u16_e32 v19, 0, v01250; GFX8-NEXT:    v_max_i16_sdwa v18, v0, v18 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD1251; GFX8-NEXT:    v_max_i16_e32 v0, v0, v191252; GFX8-NEXT:    v_sub_u16_sdwa v19, v16, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_11253; GFX8-NEXT:    v_or_b32_e32 v0, v0, v181254; GFX8-NEXT:    v_sub_u16_e32 v18, 0, v11255; GFX8-NEXT:    v_max_i16_sdwa v19, v1, v19 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD1256; GFX8-NEXT:    v_max_i16_e32 v1, v1, v181257; GFX8-NEXT:    v_sub_u16_sdwa v18, v16, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_11258; GFX8-NEXT:    v_or_b32_e32 v1, v1, v191259; GFX8-NEXT:    v_sub_u16_e32 v19, 0, v21260; GFX8-NEXT:    v_max_i16_sdwa v18, v2, v18 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD1261; GFX8-NEXT:    v_max_i16_e32 v2, v2, v191262; GFX8-NEXT:    v_sub_u16_sdwa v19, v16, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_11263; GFX8-NEXT:    v_or_b32_e32 v2, v2, v181264; GFX8-NEXT:    v_sub_u16_e32 v18, 0, v31265; GFX8-NEXT:    v_max_i16_sdwa v19, v3, v19 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD1266; GFX8-NEXT:    v_max_i16_e32 v3, v3, v181267; GFX8-NEXT:    v_sub_u16_sdwa v18, v16, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_11268; GFX8-NEXT:    v_or_b32_e32 v3, v3, v191269; GFX8-NEXT:    v_sub_u16_e32 v19, 0, v41270; GFX8-NEXT:    v_max_i16_sdwa v18, v4, v18 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD1271; GFX8-NEXT:    v_max_i16_e32 v4, v4, v191272; GFX8-NEXT:    v_sub_u16_sdwa v19, v16, v5 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_11273; GFX8-NEXT:    v_or_b32_e32 v4, v4, v181274; GFX8-NEXT:    v_sub_u16_e32 v18, 0, v51275; GFX8-NEXT:    v_max_i16_sdwa v19, v5, v19 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD1276; GFX8-NEXT:    v_max_i16_e32 v5, v5, v181277; GFX8-NEXT:    v_sub_u16_sdwa v18, v16, v6 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_11278; GFX8-NEXT:    v_or_b32_e32 v5, v5, v191279; GFX8-NEXT:    v_sub_u16_e32 v19, 0, v61280; GFX8-NEXT:    v_max_i16_sdwa v18, v6, v18 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD1281; GFX8-NEXT:    v_max_i16_e32 v6, v6, v191282; GFX8-NEXT:    v_sub_u16_sdwa v19, v16, v7 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_11283; GFX8-NEXT:    v_or_b32_e32 v6, v6, v181284; GFX8-NEXT:    v_sub_u16_e32 v18, 0, v71285; GFX8-NEXT:    v_max_i16_sdwa v19, v7, v19 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD1286; GFX8-NEXT:    v_max_i16_e32 v7, v7, v181287; GFX8-NEXT:    v_sub_u16_sdwa v18, v16, v8 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_11288; GFX8-NEXT:    v_or_b32_e32 v7, v7, v191289; GFX8-NEXT:    v_sub_u16_e32 v19, 0, v81290; GFX8-NEXT:    v_max_i16_sdwa v18, v8, v18 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD1291; GFX8-NEXT:    v_max_i16_e32 v8, v8, v191292; GFX8-NEXT:    v_sub_u16_sdwa v19, v16, v9 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_11293; GFX8-NEXT:    v_or_b32_e32 v8, v8, v181294; GFX8-NEXT:    v_sub_u16_e32 v18, 0, v91295; GFX8-NEXT:    v_max_i16_sdwa v19, v9, v19 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD1296; GFX8-NEXT:    v_max_i16_e32 v9, v9, v181297; GFX8-NEXT:    v_sub_u16_sdwa v18, v16, v10 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_11298; GFX8-NEXT:    v_or_b32_e32 v9, v9, v191299; GFX8-NEXT:    v_sub_u16_e32 v19, 0, v101300; GFX8-NEXT:    v_max_i16_sdwa v18, v10, v18 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD1301; GFX8-NEXT:    v_max_i16_e32 v10, v10, v191302; GFX8-NEXT:    v_sub_u16_sdwa v19, v16, v11 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_11303; GFX8-NEXT:    v_or_b32_e32 v10, v10, v181304; GFX8-NEXT:    v_sub_u16_e32 v18, 0, v111305; GFX8-NEXT:    v_max_i16_sdwa v19, v11, v19 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD1306; GFX8-NEXT:    v_max_i16_e32 v11, v11, v181307; GFX8-NEXT:    v_sub_u16_sdwa v18, v16, v12 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_11308; GFX8-NEXT:    v_or_b32_e32 v11, v11, v191309; GFX8-NEXT:    v_sub_u16_e32 v19, 0, v121310; GFX8-NEXT:    v_max_i16_sdwa v18, v12, v18 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD1311; GFX8-NEXT:    v_max_i16_e32 v12, v12, v191312; GFX8-NEXT:    v_sub_u16_sdwa v17, v16, v15 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_11313; GFX8-NEXT:    v_sub_u16_sdwa v19, v16, v14 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_11314; GFX8-NEXT:    v_sub_u16_sdwa v16, v16, v13 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_11315; GFX8-NEXT:    v_or_b32_e32 v12, v12, v181316; GFX8-NEXT:    v_sub_u16_e32 v18, 0, v131317; GFX8-NEXT:    v_max_i16_sdwa v16, v13, v16 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD1318; GFX8-NEXT:    v_max_i16_e32 v13, v13, v181319; GFX8-NEXT:    v_sub_u16_e32 v18, 0, v151320; GFX8-NEXT:    v_or_b32_e32 v13, v13, v161321; GFX8-NEXT:    v_sub_u16_e32 v16, 0, v141322; GFX8-NEXT:    v_max_i16_sdwa v17, v15, v17 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD1323; GFX8-NEXT:    v_max_i16_sdwa v19, v14, v19 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD1324; GFX8-NEXT:    v_max_i16_e32 v14, v14, v161325; GFX8-NEXT:    v_max_i16_e32 v15, v15, v181326; GFX8-NEXT:    v_or_b32_e32 v14, v14, v191327; GFX8-NEXT:    v_or_b32_e32 v15, v15, v171328; GFX8-NEXT:    s_setpc_b64 s[30:31]1329;1330; GFX9-LABEL: v_abs_v32i16:1331; GFX9:       ; %bb.0:1332; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1333; GFX9-NEXT:    v_pk_sub_i16 v16, 0, v01334; GFX9-NEXT:    v_pk_max_i16 v0, v0, v161335; GFX9-NEXT:    v_pk_sub_i16 v16, 0, v11336; GFX9-NEXT:    v_pk_max_i16 v1, v1, v161337; GFX9-NEXT:    v_pk_sub_i16 v16, 0, v21338; GFX9-NEXT:    v_pk_max_i16 v2, v2, v161339; GFX9-NEXT:    v_pk_sub_i16 v16, 0, v31340; GFX9-NEXT:    v_pk_max_i16 v3, v3, v161341; GFX9-NEXT:    v_pk_sub_i16 v16, 0, v41342; GFX9-NEXT:    v_pk_max_i16 v4, v4, v161343; GFX9-NEXT:    v_pk_sub_i16 v16, 0, v51344; GFX9-NEXT:    v_pk_max_i16 v5, v5, v161345; GFX9-NEXT:    v_pk_sub_i16 v16, 0, v61346; GFX9-NEXT:    v_pk_max_i16 v6, v6, v161347; GFX9-NEXT:    v_pk_sub_i16 v16, 0, v71348; GFX9-NEXT:    v_pk_max_i16 v7, v7, v161349; GFX9-NEXT:    v_pk_sub_i16 v16, 0, v81350; GFX9-NEXT:    v_pk_max_i16 v8, v8, v161351; GFX9-NEXT:    v_pk_sub_i16 v16, 0, v91352; GFX9-NEXT:    v_pk_max_i16 v9, v9, v161353; GFX9-NEXT:    v_pk_sub_i16 v16, 0, v101354; GFX9-NEXT:    v_pk_max_i16 v10, v10, v161355; GFX9-NEXT:    v_pk_sub_i16 v16, 0, v111356; GFX9-NEXT:    v_pk_max_i16 v11, v11, v161357; GFX9-NEXT:    v_pk_sub_i16 v16, 0, v121358; GFX9-NEXT:    v_pk_max_i16 v12, v12, v161359; GFX9-NEXT:    v_pk_sub_i16 v16, 0, v131360; GFX9-NEXT:    v_pk_max_i16 v13, v13, v161361; GFX9-NEXT:    v_pk_sub_i16 v16, 0, v141362; GFX9-NEXT:    v_pk_max_i16 v14, v14, v161363; GFX9-NEXT:    v_pk_sub_i16 v16, 0, v151364; GFX9-NEXT:    v_pk_max_i16 v15, v15, v161365; GFX9-NEXT:    s_setpc_b64 s[30:31]1366;1367; GFX10-LABEL: v_abs_v32i16:1368; GFX10:       ; %bb.0:1369; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1370; GFX10-NEXT:    v_pk_sub_i16 v16, 0, v01371; GFX10-NEXT:    v_pk_sub_i16 v17, 0, v21372; GFX10-NEXT:    v_pk_sub_i16 v18, 0, v31373; GFX10-NEXT:    v_pk_sub_i16 v19, 0, v41374; GFX10-NEXT:    v_pk_sub_i16 v20, 0, v51375; GFX10-NEXT:    v_pk_max_i16 v0, v0, v161376; GFX10-NEXT:    v_pk_sub_i16 v16, 0, v11377; GFX10-NEXT:    v_pk_max_i16 v2, v2, v171378; GFX10-NEXT:    v_pk_max_i16 v3, v3, v181379; GFX10-NEXT:    v_pk_max_i16 v4, v4, v191380; GFX10-NEXT:    v_pk_max_i16 v5, v5, v201381; GFX10-NEXT:    v_pk_max_i16 v1, v1, v161382; GFX10-NEXT:    v_pk_sub_i16 v16, 0, v61383; GFX10-NEXT:    v_pk_sub_i16 v17, 0, v71384; GFX10-NEXT:    v_pk_sub_i16 v18, 0, v81385; GFX10-NEXT:    v_pk_sub_i16 v19, 0, v91386; GFX10-NEXT:    v_pk_sub_i16 v20, 0, v101387; GFX10-NEXT:    v_pk_max_i16 v6, v6, v161388; GFX10-NEXT:    v_pk_max_i16 v7, v7, v171389; GFX10-NEXT:    v_pk_max_i16 v8, v8, v181390; GFX10-NEXT:    v_pk_max_i16 v9, v9, v191391; GFX10-NEXT:    v_pk_max_i16 v10, v10, v201392; GFX10-NEXT:    v_pk_sub_i16 v16, 0, v111393; GFX10-NEXT:    v_pk_sub_i16 v17, 0, v121394; GFX10-NEXT:    v_pk_sub_i16 v18, 0, v131395; GFX10-NEXT:    v_pk_sub_i16 v19, 0, v141396; GFX10-NEXT:    v_pk_sub_i16 v20, 0, v151397; GFX10-NEXT:    v_pk_max_i16 v11, v11, v161398; GFX10-NEXT:    v_pk_max_i16 v12, v12, v171399; GFX10-NEXT:    v_pk_max_i16 v13, v13, v181400; GFX10-NEXT:    v_pk_max_i16 v14, v14, v191401; GFX10-NEXT:    v_pk_max_i16 v15, v15, v201402; GFX10-NEXT:    s_setpc_b64 s[30:31]1403;1404; GFX11-LABEL: v_abs_v32i16:1405; GFX11:       ; %bb.0:1406; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1407; GFX11-NEXT:    v_pk_sub_i16 v16, 0, v01408; GFX11-NEXT:    v_pk_sub_i16 v17, 0, v21409; GFX11-NEXT:    v_pk_sub_i16 v18, 0, v31410; GFX11-NEXT:    v_pk_sub_i16 v19, 0, v41411; GFX11-NEXT:    v_pk_sub_i16 v20, 0, v51412; GFX11-NEXT:    v_pk_max_i16 v0, v0, v161413; GFX11-NEXT:    v_pk_sub_i16 v16, 0, v11414; GFX11-NEXT:    v_pk_max_i16 v2, v2, v171415; GFX11-NEXT:    v_pk_max_i16 v3, v3, v181416; GFX11-NEXT:    v_pk_max_i16 v4, v4, v191417; GFX11-NEXT:    v_pk_max_i16 v5, v5, v201418; GFX11-NEXT:    v_pk_max_i16 v1, v1, v161419; GFX11-NEXT:    v_pk_sub_i16 v16, 0, v61420; GFX11-NEXT:    v_pk_sub_i16 v17, 0, v71421; GFX11-NEXT:    v_pk_sub_i16 v18, 0, v81422; GFX11-NEXT:    v_pk_sub_i16 v19, 0, v91423; GFX11-NEXT:    v_pk_sub_i16 v20, 0, v101424; GFX11-NEXT:    v_pk_max_i16 v6, v6, v161425; GFX11-NEXT:    v_pk_max_i16 v7, v7, v171426; GFX11-NEXT:    v_pk_max_i16 v8, v8, v181427; GFX11-NEXT:    v_pk_max_i16 v9, v9, v191428; GFX11-NEXT:    v_pk_max_i16 v10, v10, v201429; GFX11-NEXT:    v_pk_sub_i16 v16, 0, v111430; GFX11-NEXT:    v_pk_sub_i16 v17, 0, v121431; GFX11-NEXT:    v_pk_sub_i16 v18, 0, v131432; GFX11-NEXT:    v_pk_sub_i16 v19, 0, v141433; GFX11-NEXT:    v_pk_sub_i16 v20, 0, v151434; GFX11-NEXT:    v_pk_max_i16 v11, v11, v161435; GFX11-NEXT:    v_pk_max_i16 v12, v12, v171436; GFX11-NEXT:    v_pk_max_i16 v13, v13, v181437; GFX11-NEXT:    v_pk_max_i16 v14, v14, v191438; GFX11-NEXT:    v_pk_max_i16 v15, v15, v201439; GFX11-NEXT:    s_setpc_b64 s[30:31]1440;1441; GFX12-LABEL: v_abs_v32i16:1442; GFX12:       ; %bb.0:1443; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x01444; GFX12-NEXT:    s_wait_expcnt 0x01445; GFX12-NEXT:    s_wait_samplecnt 0x01446; GFX12-NEXT:    s_wait_bvhcnt 0x01447; GFX12-NEXT:    s_wait_kmcnt 0x01448; GFX12-NEXT:    v_pk_sub_i16 v16, 0, v01449; GFX12-NEXT:    v_pk_sub_i16 v17, 0, v21450; GFX12-NEXT:    v_pk_sub_i16 v18, 0, v31451; GFX12-NEXT:    v_pk_sub_i16 v19, 0, v41452; GFX12-NEXT:    v_pk_sub_i16 v20, 0, v51453; GFX12-NEXT:    v_pk_max_i16 v0, v0, v161454; GFX12-NEXT:    v_pk_sub_i16 v16, 0, v11455; GFX12-NEXT:    v_pk_max_i16 v2, v2, v171456; GFX12-NEXT:    v_pk_max_i16 v3, v3, v181457; GFX12-NEXT:    v_pk_max_i16 v4, v4, v191458; GFX12-NEXT:    v_pk_max_i16 v5, v5, v201459; GFX12-NEXT:    v_pk_max_i16 v1, v1, v161460; GFX12-NEXT:    v_pk_sub_i16 v16, 0, v61461; GFX12-NEXT:    v_pk_sub_i16 v17, 0, v71462; GFX12-NEXT:    v_pk_sub_i16 v18, 0, v81463; GFX12-NEXT:    v_pk_sub_i16 v19, 0, v91464; GFX12-NEXT:    v_pk_sub_i16 v20, 0, v101465; GFX12-NEXT:    v_pk_max_i16 v6, v6, v161466; GFX12-NEXT:    v_pk_max_i16 v7, v7, v171467; GFX12-NEXT:    v_pk_max_i16 v8, v8, v181468; GFX12-NEXT:    v_pk_max_i16 v9, v9, v191469; GFX12-NEXT:    v_pk_max_i16 v10, v10, v201470; GFX12-NEXT:    v_pk_sub_i16 v16, 0, v111471; GFX12-NEXT:    v_pk_sub_i16 v17, 0, v121472; GFX12-NEXT:    v_pk_sub_i16 v18, 0, v131473; GFX12-NEXT:    v_pk_sub_i16 v19, 0, v141474; GFX12-NEXT:    v_pk_sub_i16 v20, 0, v151475; GFX12-NEXT:    v_pk_max_i16 v11, v11, v161476; GFX12-NEXT:    v_pk_max_i16 v12, v12, v171477; GFX12-NEXT:    v_pk_max_i16 v13, v13, v181478; GFX12-NEXT:    v_pk_max_i16 v14, v14, v191479; GFX12-NEXT:    v_pk_max_i16 v15, v15, v201480; GFX12-NEXT:    s_setpc_b64 s[30:31]1481  %res = call <32 x i16> @llvm.abs.v32i16(<32 x i16> %arg, i1 false)1482  ret <32 x i16> %res1483}1484