17091dd27STim Gymnich; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 27091dd27STim Gymnich; RUN: llc -mtriple=amdgcn-- -mcpu=gfx600 < %s | FileCheck -check-prefix=GFX6 %s 37091dd27STim Gymnich; RUN: llc -mtriple=amdgcn-- -mcpu=gfx700 < %s | FileCheck -check-prefix=GFX7 %s 47091dd27STim Gymnich; RUN: llc -mtriple=amdgcn-- -mcpu=gfx803 < %s | FileCheck -check-prefix=GFX8 %s 57091dd27STim Gymnich; RUN: llc -mtriple=amdgcn-- -mcpu=gfx900 < %s | FileCheck -check-prefix=GFX9 %s 67091dd27STim Gymnich; RUN: llc -mtriple=amdgcn-- -mcpu=gfx1010 < %s | FileCheck -check-prefix=GFX10 %s 77091dd27STim Gymnich; RUN: llc -mtriple=amdgcn-- -mcpu=gfx1100 < %s | FileCheck -check-prefix=GFX11 %s 87091dd27STim Gymnich; RUN: llc -mtriple=amdgcn-- -mcpu=gfx1200 < %s | FileCheck -check-prefix=GFX12 %s 97091dd27STim Gymnich 107091dd27STim Gymnichdefine i16 @abs_i16(i16 %arg) { 117091dd27STim Gymnich; GFX6-LABEL: abs_i16: 127091dd27STim Gymnich; GFX6: ; %bb.0: 137091dd27STim Gymnich; GFX6-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 147091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v0, v0, 0, 16 157091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v1, vcc, 0, v0 167091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v0, v0, v1 177091dd27STim Gymnich; GFX6-NEXT: s_setpc_b64 s[30:31] 187091dd27STim Gymnich; 197091dd27STim Gymnich; GFX7-LABEL: abs_i16: 207091dd27STim Gymnich; GFX7: ; %bb.0: 217091dd27STim Gymnich; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 227091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v0, v0, 0, 16 237091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v1, vcc, 0, v0 247091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v0, v0, v1 257091dd27STim Gymnich; GFX7-NEXT: s_setpc_b64 s[30:31] 267091dd27STim Gymnich; 277091dd27STim Gymnich; GFX8-LABEL: abs_i16: 287091dd27STim Gymnich; GFX8: ; %bb.0: 297091dd27STim Gymnich; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 307091dd27STim Gymnich; GFX8-NEXT: v_sub_u16_e32 v1, 0, v0 317091dd27STim Gymnich; GFX8-NEXT: v_max_i16_e32 v0, v0, v1 327091dd27STim Gymnich; GFX8-NEXT: s_setpc_b64 s[30:31] 337091dd27STim Gymnich; 347091dd27STim Gymnich; GFX9-LABEL: abs_i16: 357091dd27STim Gymnich; GFX9: ; %bb.0: 367091dd27STim Gymnich; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 377091dd27STim Gymnich; GFX9-NEXT: v_sub_u16_e32 v1, 0, v0 387091dd27STim Gymnich; GFX9-NEXT: v_max_i16_e32 v0, v0, v1 397091dd27STim Gymnich; GFX9-NEXT: s_setpc_b64 s[30:31] 407091dd27STim Gymnich; 417091dd27STim Gymnich; GFX10-LABEL: abs_i16: 427091dd27STim Gymnich; GFX10: ; %bb.0: 437091dd27STim Gymnich; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 447091dd27STim Gymnich; GFX10-NEXT: v_sub_nc_u16 v1, 0, v0 457091dd27STim Gymnich; GFX10-NEXT: v_max_i16 v0, v0, v1 467091dd27STim Gymnich; GFX10-NEXT: s_setpc_b64 s[30:31] 477091dd27STim Gymnich; 487091dd27STim Gymnich; GFX11-LABEL: abs_i16: 497091dd27STim Gymnich; GFX11: ; %bb.0: 507091dd27STim Gymnich; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 517091dd27STim Gymnich; GFX11-NEXT: v_sub_nc_u16 v1, 0, v0 527091dd27STim Gymnich; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_1) 537091dd27STim Gymnich; GFX11-NEXT: v_max_i16 v0, v0, v1 547091dd27STim Gymnich; GFX11-NEXT: s_setpc_b64 s[30:31] 557091dd27STim Gymnich; 567091dd27STim Gymnich; GFX12-LABEL: abs_i16: 577091dd27STim Gymnich; GFX12: ; %bb.0: 587091dd27STim Gymnich; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0 597091dd27STim Gymnich; GFX12-NEXT: s_wait_expcnt 0x0 607091dd27STim Gymnich; GFX12-NEXT: s_wait_samplecnt 0x0 617091dd27STim Gymnich; GFX12-NEXT: s_wait_bvhcnt 0x0 627091dd27STim Gymnich; GFX12-NEXT: s_wait_kmcnt 0x0 637091dd27STim Gymnich; GFX12-NEXT: v_sub_nc_u16 v1, 0, v0 647091dd27STim Gymnich; GFX12-NEXT: s_delay_alu instid0(VALU_DEP_1) 657091dd27STim Gymnich; GFX12-NEXT: v_max_i16 v0, v0, v1 667091dd27STim Gymnich; GFX12-NEXT: s_setpc_b64 s[30:31] 677091dd27STim Gymnich %res = call i16 @llvm.abs.i16(i16 %arg, i1 false) 687091dd27STim Gymnich ret i16 %res 697091dd27STim Gymnich} 707091dd27STim Gymnich 717091dd27STim Gymnichdefine <2 x i16> @v_abs_v2i16(<2 x i16> %arg) { 727091dd27STim Gymnich; GFX6-LABEL: v_abs_v2i16: 737091dd27STim Gymnich; GFX6: ; %bb.0: 747091dd27STim Gymnich; GFX6-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 757091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v0, v0, 0, 16 767091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v1, v1, 0, 16 777091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v2, vcc, 0, v0 787091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v0, v0, v2 797091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v2, vcc, 0, v1 807091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v1, v1, v2 817091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v2, 16, v1 827091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v0, v0, v2 837091dd27STim Gymnich; GFX6-NEXT: s_setpc_b64 s[30:31] 847091dd27STim Gymnich; 857091dd27STim Gymnich; GFX7-LABEL: v_abs_v2i16: 867091dd27STim Gymnich; GFX7: ; %bb.0: 877091dd27STim Gymnich; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 887091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v0, v0, 0, 16 897091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v1, v1, 0, 16 907091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v2, vcc, 0, v0 917091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v0, v0, v2 927091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v2, vcc, 0, v1 937091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v1, v1, v2 947091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v2, 16, v1 957091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v0, v0, v2 967091dd27STim Gymnich; GFX7-NEXT: s_setpc_b64 s[30:31] 977091dd27STim Gymnich; 987091dd27STim Gymnich; GFX8-LABEL: v_abs_v2i16: 997091dd27STim Gymnich; GFX8: ; %bb.0: 1007091dd27STim Gymnich; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 10184e9401aSJeffrey Byrnes; GFX8-NEXT: v_mov_b32_e32 v1, 0 10284e9401aSJeffrey Byrnes; GFX8-NEXT: v_sub_u16_sdwa v1, v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 1037091dd27STim Gymnich; GFX8-NEXT: v_sub_u16_e32 v2, 0, v0 10484e9401aSJeffrey Byrnes; GFX8-NEXT: v_max_i16_sdwa v1, v0, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 1057091dd27STim Gymnich; GFX8-NEXT: v_max_i16_e32 v0, v0, v2 1067091dd27STim Gymnich; GFX8-NEXT: v_or_b32_e32 v0, v0, v1 1077091dd27STim Gymnich; GFX8-NEXT: s_setpc_b64 s[30:31] 1087091dd27STim Gymnich; 1097091dd27STim Gymnich; GFX9-LABEL: v_abs_v2i16: 1107091dd27STim Gymnich; GFX9: ; %bb.0: 1117091dd27STim Gymnich; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 1127091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v1, 0, v0 1137091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v0, v0, v1 1147091dd27STim Gymnich; GFX9-NEXT: s_setpc_b64 s[30:31] 1157091dd27STim Gymnich; 1167091dd27STim Gymnich; GFX10-LABEL: v_abs_v2i16: 1177091dd27STim Gymnich; GFX10: ; %bb.0: 1187091dd27STim Gymnich; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 1197091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v1, 0, v0 1207091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v0, v0, v1 1217091dd27STim Gymnich; GFX10-NEXT: s_setpc_b64 s[30:31] 1227091dd27STim Gymnich; 1237091dd27STim Gymnich; GFX11-LABEL: v_abs_v2i16: 1247091dd27STim Gymnich; GFX11: ; %bb.0: 1257091dd27STim Gymnich; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 1267091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v1, 0, v0 1277091dd27STim Gymnich; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_1) 1287091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v0, v0, v1 1297091dd27STim Gymnich; GFX11-NEXT: s_setpc_b64 s[30:31] 1307091dd27STim Gymnich; 1317091dd27STim Gymnich; GFX12-LABEL: v_abs_v2i16: 1327091dd27STim Gymnich; GFX12: ; %bb.0: 1337091dd27STim Gymnich; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0 1347091dd27STim Gymnich; GFX12-NEXT: s_wait_expcnt 0x0 1357091dd27STim Gymnich; GFX12-NEXT: s_wait_samplecnt 0x0 1367091dd27STim Gymnich; GFX12-NEXT: s_wait_bvhcnt 0x0 1377091dd27STim Gymnich; GFX12-NEXT: s_wait_kmcnt 0x0 1387091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v1, 0, v0 1397091dd27STim Gymnich; GFX12-NEXT: s_delay_alu instid0(VALU_DEP_1) 1407091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v0, v0, v1 1417091dd27STim Gymnich; GFX12-NEXT: s_setpc_b64 s[30:31] 1427091dd27STim Gymnich %res = call <2 x i16> @llvm.abs.v2i16(<2 x i16> %arg, i1 false) 1437091dd27STim Gymnich ret <2 x i16> %res 1447091dd27STim Gymnich} 1457091dd27STim Gymnich 1467091dd27STim Gymnichdefine <3 x i16> @v_abs_v3i16(<3 x i16> %arg) { 1477091dd27STim Gymnich; GFX6-LABEL: v_abs_v3i16: 1487091dd27STim Gymnich; GFX6: ; %bb.0: 1497091dd27STim Gymnich; GFX6-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 1507091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v0, v0, 0, 16 1517091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v1, v1, 0, 16 1527091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v3, vcc, 0, v0 1537091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v0, v0, v3 1547091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v3, vcc, 0, v1 1557091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v1, v1, v3 1567091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v2, v2, 0, 16 1577091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v1, 16, v1 1587091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v0, v0, v1 1597091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v1, vcc, 0, v2 1607091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v2, v2, v1 1617091dd27STim Gymnich; GFX6-NEXT: v_alignbit_b32 v1, v2, v0, 16 1627091dd27STim Gymnich; GFX6-NEXT: s_setpc_b64 s[30:31] 1637091dd27STim Gymnich; 1647091dd27STim Gymnich; GFX7-LABEL: v_abs_v3i16: 1657091dd27STim Gymnich; GFX7: ; %bb.0: 1667091dd27STim Gymnich; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 1677091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v0, v0, 0, 16 1687091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v1, v1, 0, 16 1697091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v3, vcc, 0, v0 1707091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v0, v0, v3 1717091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v3, vcc, 0, v1 1727091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v1, v1, v3 1737091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v2, v2, 0, 16 1747091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v1, 16, v1 1757091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v0, v0, v1 1767091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v1, vcc, 0, v2 1777091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v2, v2, v1 1787091dd27STim Gymnich; GFX7-NEXT: v_alignbit_b32 v1, v2, v0, 16 1797091dd27STim Gymnich; GFX7-NEXT: s_setpc_b64 s[30:31] 1807091dd27STim Gymnich; 1817091dd27STim Gymnich; GFX8-LABEL: v_abs_v3i16: 1827091dd27STim Gymnich; GFX8: ; %bb.0: 1837091dd27STim Gymnich; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 18484e9401aSJeffrey Byrnes; GFX8-NEXT: v_mov_b32_e32 v2, 0 1857091dd27STim Gymnich; GFX8-NEXT: v_sub_u16_e32 v3, 0, v1 18684e9401aSJeffrey Byrnes; GFX8-NEXT: v_sub_u16_sdwa v2, v2, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 1877091dd27STim Gymnich; GFX8-NEXT: v_max_i16_e32 v1, v1, v3 1887091dd27STim Gymnich; GFX8-NEXT: v_sub_u16_e32 v3, 0, v0 18984e9401aSJeffrey Byrnes; GFX8-NEXT: v_max_i16_sdwa v2, v0, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 1907091dd27STim Gymnich; GFX8-NEXT: v_max_i16_e32 v0, v0, v3 1917091dd27STim Gymnich; GFX8-NEXT: v_or_b32_e32 v0, v0, v2 1927091dd27STim Gymnich; GFX8-NEXT: s_setpc_b64 s[30:31] 1937091dd27STim Gymnich; 1947091dd27STim Gymnich; GFX9-LABEL: v_abs_v3i16: 1957091dd27STim Gymnich; GFX9: ; %bb.0: 1967091dd27STim Gymnich; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 1977091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v2, 0, v0 1987091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v0, v0, v2 1997091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v2, 0, v1 2007091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v1, v1, v2 2017091dd27STim Gymnich; GFX9-NEXT: s_setpc_b64 s[30:31] 2027091dd27STim Gymnich; 2037091dd27STim Gymnich; GFX10-LABEL: v_abs_v3i16: 2047091dd27STim Gymnich; GFX10: ; %bb.0: 2057091dd27STim Gymnich; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 2067091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v2, 0, v0 2077091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v3, 0, v1 2087091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v0, v0, v2 2097091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v1, v1, v3 2107091dd27STim Gymnich; GFX10-NEXT: s_setpc_b64 s[30:31] 2117091dd27STim Gymnich; 2127091dd27STim Gymnich; GFX11-LABEL: v_abs_v3i16: 2137091dd27STim Gymnich; GFX11: ; %bb.0: 2147091dd27STim Gymnich; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 2157091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v2, 0, v0 2167091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v3, 0, v1 2177091dd27STim Gymnich; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2) 2187091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v0, v0, v2 2197091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v1, v1, v3 2207091dd27STim Gymnich; GFX11-NEXT: s_setpc_b64 s[30:31] 2217091dd27STim Gymnich; 2227091dd27STim Gymnich; GFX12-LABEL: v_abs_v3i16: 2237091dd27STim Gymnich; GFX12: ; %bb.0: 2247091dd27STim Gymnich; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0 2257091dd27STim Gymnich; GFX12-NEXT: s_wait_expcnt 0x0 2267091dd27STim Gymnich; GFX12-NEXT: s_wait_samplecnt 0x0 2277091dd27STim Gymnich; GFX12-NEXT: s_wait_bvhcnt 0x0 2287091dd27STim Gymnich; GFX12-NEXT: s_wait_kmcnt 0x0 2297091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v2, 0, v0 2307091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v3, 0, v1 2317091dd27STim Gymnich; GFX12-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2) 2327091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v0, v0, v2 2337091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v1, v1, v3 2347091dd27STim Gymnich; GFX12-NEXT: s_setpc_b64 s[30:31] 2357091dd27STim Gymnich %res = call <3 x i16> @llvm.abs.v3i16(<3 x i16> %arg, i1 false) 2367091dd27STim Gymnich ret <3 x i16> %res 2377091dd27STim Gymnich} 2387091dd27STim Gymnich 2397091dd27STim Gymnichdefine <4 x i16> @v_abs_v4i16(<4 x i16> %arg) { 2407091dd27STim Gymnich; GFX6-LABEL: v_abs_v4i16: 2417091dd27STim Gymnich; GFX6: ; %bb.0: 2427091dd27STim Gymnich; GFX6-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 2437091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v2, v2, 0, 16 2447091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v3, v3, 0, 16 2457091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v4, vcc, 0, v2 2467091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v2, v2, v4 2477091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v4, vcc, 0, v3 2487091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v3, v3, v4 2497091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v0, v0, 0, 16 2507091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v3, 16, v3 2517091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v1, v1, 0, 16 2527091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v2, v2, v3 2537091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v3, vcc, 0, v0 2547091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v0, v0, v3 2557091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v3, vcc, 0, v1 2567091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v1, v1, v3 2577091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v1, 16, v1 2587091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v0, v0, v1 2597091dd27STim Gymnich; GFX6-NEXT: v_alignbit_b32 v1, v2, v0, 16 2607091dd27STim Gymnich; GFX6-NEXT: v_lshrrev_b32_e32 v3, 16, v2 2617091dd27STim Gymnich; GFX6-NEXT: s_setpc_b64 s[30:31] 2627091dd27STim Gymnich; 2637091dd27STim Gymnich; GFX7-LABEL: v_abs_v4i16: 2647091dd27STim Gymnich; GFX7: ; %bb.0: 2657091dd27STim Gymnich; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 2667091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v2, v2, 0, 16 2677091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v3, v3, 0, 16 2687091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v4, vcc, 0, v2 2697091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v2, v2, v4 2707091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v4, vcc, 0, v3 2717091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v3, v3, v4 2727091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v0, v0, 0, 16 2737091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v3, 16, v3 2747091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v1, v1, 0, 16 2757091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v2, v2, v3 2767091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v3, vcc, 0, v0 2777091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v0, v0, v3 2787091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v3, vcc, 0, v1 2797091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v1, v1, v3 2807091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v1, 16, v1 2817091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v0, v0, v1 2827091dd27STim Gymnich; GFX7-NEXT: v_alignbit_b32 v1, v2, v0, 16 2837091dd27STim Gymnich; GFX7-NEXT: v_lshrrev_b32_e32 v3, 16, v2 2847091dd27STim Gymnich; GFX7-NEXT: s_setpc_b64 s[30:31] 2857091dd27STim Gymnich; 2867091dd27STim Gymnich; GFX8-LABEL: v_abs_v4i16: 2877091dd27STim Gymnich; GFX8: ; %bb.0: 2887091dd27STim Gymnich; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 28984e9401aSJeffrey Byrnes; GFX8-NEXT: v_mov_b32_e32 v2, 0 29084e9401aSJeffrey Byrnes; GFX8-NEXT: v_sub_u16_sdwa v3, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 29184e9401aSJeffrey Byrnes; GFX8-NEXT: v_sub_u16_sdwa v2, v2, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 2927091dd27STim Gymnich; GFX8-NEXT: v_sub_u16_e32 v4, 0, v1 2937091dd27STim Gymnich; GFX8-NEXT: v_sub_u16_e32 v5, 0, v0 29484e9401aSJeffrey Byrnes; GFX8-NEXT: v_max_i16_sdwa v3, v1, v3 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 29584e9401aSJeffrey Byrnes; GFX8-NEXT: v_max_i16_sdwa v2, v0, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 2967091dd27STim Gymnich; GFX8-NEXT: v_max_i16_e32 v0, v0, v5 2977091dd27STim Gymnich; GFX8-NEXT: v_max_i16_e32 v1, v1, v4 29884e9401aSJeffrey Byrnes; GFX8-NEXT: v_or_b32_e32 v0, v0, v2 29984e9401aSJeffrey Byrnes; GFX8-NEXT: v_or_b32_e32 v1, v1, v3 3007091dd27STim Gymnich; GFX8-NEXT: s_setpc_b64 s[30:31] 3017091dd27STim Gymnich; 3027091dd27STim Gymnich; GFX9-LABEL: v_abs_v4i16: 3037091dd27STim Gymnich; GFX9: ; %bb.0: 3047091dd27STim Gymnich; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 3057091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v2, 0, v0 3067091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v0, v0, v2 3077091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v2, 0, v1 3087091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v1, v1, v2 3097091dd27STim Gymnich; GFX9-NEXT: s_setpc_b64 s[30:31] 3107091dd27STim Gymnich; 3117091dd27STim Gymnich; GFX10-LABEL: v_abs_v4i16: 3127091dd27STim Gymnich; GFX10: ; %bb.0: 3137091dd27STim Gymnich; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 3147091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v2, 0, v0 3157091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v3, 0, v1 3167091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v0, v0, v2 3177091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v1, v1, v3 3187091dd27STim Gymnich; GFX10-NEXT: s_setpc_b64 s[30:31] 3197091dd27STim Gymnich; 3207091dd27STim Gymnich; GFX11-LABEL: v_abs_v4i16: 3217091dd27STim Gymnich; GFX11: ; %bb.0: 3227091dd27STim Gymnich; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 3237091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v2, 0, v0 3247091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v3, 0, v1 3257091dd27STim Gymnich; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2) 3267091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v0, v0, v2 3277091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v1, v1, v3 3287091dd27STim Gymnich; GFX11-NEXT: s_setpc_b64 s[30:31] 3297091dd27STim Gymnich; 3307091dd27STim Gymnich; GFX12-LABEL: v_abs_v4i16: 3317091dd27STim Gymnich; GFX12: ; %bb.0: 3327091dd27STim Gymnich; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0 3337091dd27STim Gymnich; GFX12-NEXT: s_wait_expcnt 0x0 3347091dd27STim Gymnich; GFX12-NEXT: s_wait_samplecnt 0x0 3357091dd27STim Gymnich; GFX12-NEXT: s_wait_bvhcnt 0x0 3367091dd27STim Gymnich; GFX12-NEXT: s_wait_kmcnt 0x0 3377091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v2, 0, v0 3387091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v3, 0, v1 3397091dd27STim Gymnich; GFX12-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2) 3407091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v0, v0, v2 3417091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v1, v1, v3 3427091dd27STim Gymnich; GFX12-NEXT: s_setpc_b64 s[30:31] 3437091dd27STim Gymnich %res = call <4 x i16> @llvm.abs.v4i16(<4 x i16> %arg, i1 false) 3447091dd27STim Gymnich ret <4 x i16> %res 3457091dd27STim Gymnich} 3467091dd27STim Gymnich 3477091dd27STim Gymnichdefine <6 x i16> @v_abs_v6i16(<6 x i16> %arg) { 3487091dd27STim Gymnich; GFX6-LABEL: v_abs_v6i16: 3497091dd27STim Gymnich; GFX6: ; %bb.0: 3507091dd27STim Gymnich; GFX6-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 3517091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v2, v2, 0, 16 3527091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v3, v3, 0, 16 3537091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v6, vcc, 0, v2 3547091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v2, v2, v6 3557091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v6, vcc, 0, v3 3567091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v3, v3, v6 3577091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v0, v0, 0, 16 3587091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v3, 16, v3 3597091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v1, v1, 0, 16 3607091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v2, v2, v3 3617091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v3, vcc, 0, v0 3627091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v0, v0, v3 3637091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v3, vcc, 0, v1 3647091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v5, v5, 0, 16 3657091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v1, v1, v3 3667091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v4, v4, 0, 16 3677091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v1, 16, v1 3687091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v3, vcc, 0, v5 3697091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v0, v0, v1 3707091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v1, vcc, 0, v4 3717091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v5, v5, v3 3727091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v1, v4, v1 3737091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v3, 16, v5 3747091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v4, v1, v3 3757091dd27STim Gymnich; GFX6-NEXT: v_alignbit_b32 v1, v2, v0, 16 3767091dd27STim Gymnich; GFX6-NEXT: v_lshrrev_b32_e32 v3, 16, v2 3777091dd27STim Gymnich; GFX6-NEXT: s_setpc_b64 s[30:31] 3787091dd27STim Gymnich; 3797091dd27STim Gymnich; GFX7-LABEL: v_abs_v6i16: 3807091dd27STim Gymnich; GFX7: ; %bb.0: 3817091dd27STim Gymnich; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 3827091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v2, v2, 0, 16 3837091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v3, v3, 0, 16 3847091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v6, vcc, 0, v2 3857091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v2, v2, v6 3867091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v6, vcc, 0, v3 3877091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v3, v3, v6 3887091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v0, v0, 0, 16 3897091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v3, 16, v3 3907091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v1, v1, 0, 16 3917091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v2, v2, v3 3927091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v3, vcc, 0, v0 3937091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v0, v0, v3 3947091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v3, vcc, 0, v1 3957091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v5, v5, 0, 16 3967091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v1, v1, v3 3977091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v4, v4, 0, 16 3987091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v1, 16, v1 3997091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v3, vcc, 0, v5 4007091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v0, v0, v1 4017091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v1, vcc, 0, v4 4027091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v5, v5, v3 4037091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v1, v4, v1 4047091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v3, 16, v5 4057091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v4, v1, v3 4067091dd27STim Gymnich; GFX7-NEXT: v_alignbit_b32 v1, v2, v0, 16 4077091dd27STim Gymnich; GFX7-NEXT: v_lshrrev_b32_e32 v3, 16, v2 4087091dd27STim Gymnich; GFX7-NEXT: s_setpc_b64 s[30:31] 4097091dd27STim Gymnich; 4107091dd27STim Gymnich; GFX8-LABEL: v_abs_v6i16: 4117091dd27STim Gymnich; GFX8: ; %bb.0: 4127091dd27STim Gymnich; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 41384e9401aSJeffrey Byrnes; GFX8-NEXT: v_mov_b32_e32 v3, 0 41484e9401aSJeffrey Byrnes; GFX8-NEXT: v_sub_u16_sdwa v4, v3, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 41584e9401aSJeffrey Byrnes; GFX8-NEXT: v_sub_u16_sdwa v5, v3, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 41684e9401aSJeffrey Byrnes; GFX8-NEXT: v_sub_u16_sdwa v3, v3, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 4177091dd27STim Gymnich; GFX8-NEXT: v_sub_u16_e32 v6, 0, v2 4187091dd27STim Gymnich; GFX8-NEXT: v_sub_u16_e32 v7, 0, v1 4197091dd27STim Gymnich; GFX8-NEXT: v_sub_u16_e32 v8, 0, v0 42084e9401aSJeffrey Byrnes; GFX8-NEXT: v_max_i16_sdwa v4, v2, v4 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 42184e9401aSJeffrey Byrnes; GFX8-NEXT: v_max_i16_sdwa v5, v1, v5 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 42284e9401aSJeffrey Byrnes; GFX8-NEXT: v_max_i16_sdwa v3, v0, v3 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 4237091dd27STim Gymnich; GFX8-NEXT: v_max_i16_e32 v0, v0, v8 4247091dd27STim Gymnich; GFX8-NEXT: v_max_i16_e32 v1, v1, v7 4257091dd27STim Gymnich; GFX8-NEXT: v_max_i16_e32 v2, v2, v6 42684e9401aSJeffrey Byrnes; GFX8-NEXT: v_or_b32_e32 v0, v0, v3 42784e9401aSJeffrey Byrnes; GFX8-NEXT: v_or_b32_e32 v1, v1, v5 42884e9401aSJeffrey Byrnes; GFX8-NEXT: v_or_b32_e32 v2, v2, v4 4297091dd27STim Gymnich; GFX8-NEXT: s_setpc_b64 s[30:31] 4307091dd27STim Gymnich; 4317091dd27STim Gymnich; GFX9-LABEL: v_abs_v6i16: 4327091dd27STim Gymnich; GFX9: ; %bb.0: 4337091dd27STim Gymnich; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 4347091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v3, 0, v0 4357091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v0, v0, v3 4367091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v3, 0, v1 4377091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v1, v1, v3 4387091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v3, 0, v2 4397091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v2, v2, v3 4407091dd27STim Gymnich; GFX9-NEXT: s_setpc_b64 s[30:31] 4417091dd27STim Gymnich; 4427091dd27STim Gymnich; GFX10-LABEL: v_abs_v6i16: 4437091dd27STim Gymnich; GFX10: ; %bb.0: 4447091dd27STim Gymnich; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 4457091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v3, 0, v0 4467091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v4, 0, v1 4477091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v5, 0, v2 4487091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v0, v0, v3 4497091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v1, v1, v4 4507091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v2, v2, v5 4517091dd27STim Gymnich; GFX10-NEXT: s_setpc_b64 s[30:31] 4527091dd27STim Gymnich; 4537091dd27STim Gymnich; GFX11-LABEL: v_abs_v6i16: 4547091dd27STim Gymnich; GFX11: ; %bb.0: 4557091dd27STim Gymnich; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 4567091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v3, 0, v0 4577091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v4, 0, v1 4587091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v5, 0, v2 4597091dd27STim Gymnich; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3) 4607091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v0, v0, v3 4617091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v1, v1, v4 4627091dd27STim Gymnich; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_3) 4637091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v2, v2, v5 4647091dd27STim Gymnich; GFX11-NEXT: s_setpc_b64 s[30:31] 4657091dd27STim Gymnich; 4667091dd27STim Gymnich; GFX12-LABEL: v_abs_v6i16: 4677091dd27STim Gymnich; GFX12: ; %bb.0: 4687091dd27STim Gymnich; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0 4697091dd27STim Gymnich; GFX12-NEXT: s_wait_expcnt 0x0 4707091dd27STim Gymnich; GFX12-NEXT: s_wait_samplecnt 0x0 4717091dd27STim Gymnich; GFX12-NEXT: s_wait_bvhcnt 0x0 4727091dd27STim Gymnich; GFX12-NEXT: s_wait_kmcnt 0x0 4737091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v3, 0, v0 4747091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v4, 0, v1 4757091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v5, 0, v2 4767091dd27STim Gymnich; GFX12-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3) 4777091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v0, v0, v3 4787091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v1, v1, v4 4797091dd27STim Gymnich; GFX12-NEXT: s_delay_alu instid0(VALU_DEP_3) 4807091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v2, v2, v5 4817091dd27STim Gymnich; GFX12-NEXT: s_setpc_b64 s[30:31] 4827091dd27STim Gymnich %res = call <6 x i16> @llvm.abs.v6i16(<6 x i16> %arg, i1 false) 4837091dd27STim Gymnich ret <6 x i16> %res 4847091dd27STim Gymnich} 4857091dd27STim Gymnich 4867091dd27STim Gymnichdefine <8 x i16> @v_abs_v8i16(<8 x i16> %arg) { 4877091dd27STim Gymnich; GFX6-LABEL: v_abs_v8i16: 4887091dd27STim Gymnich; GFX6: ; %bb.0: 4897091dd27STim Gymnich; GFX6-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 4907091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v6, v6, 0, 16 4917091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v7, v7, 0, 16 4927091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v8, vcc, 0, v6 4937091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v6, v6, v8 4947091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v8, vcc, 0, v7 4957091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v7, v7, v8 4967091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v4, v4, 0, 16 4977091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v7, 16, v7 4987091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v5, v5, 0, 16 4997091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v6, v6, v7 5007091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v7, vcc, 0, v4 5017091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v4, v4, v7 5027091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v7, vcc, 0, v5 5037091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v5, v5, v7 5047091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v2, v2, 0, 16 5057091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v5, 16, v5 5067091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v3, v3, 0, 16 5077091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v4, v4, v5 5087091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v5, vcc, 0, v2 5097091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v2, v2, v5 5107091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v5, vcc, 0, v3 5117091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v3, v3, v5 5127091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v0, v0, 0, 16 5137091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v3, 16, v3 5147091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v1, v1, 0, 16 5157091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v2, v2, v3 5167091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v3, vcc, 0, v0 5177091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v0, v0, v3 5187091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v3, vcc, 0, v1 5197091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v1, v1, v3 5207091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v1, 16, v1 5217091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v0, v0, v1 5227091dd27STim Gymnich; GFX6-NEXT: v_alignbit_b32 v1, v2, v0, 16 5237091dd27STim Gymnich; GFX6-NEXT: v_alignbit_b32 v5, v6, v4, 16 5247091dd27STim Gymnich; GFX6-NEXT: v_lshrrev_b32_e32 v3, 16, v2 5257091dd27STim Gymnich; GFX6-NEXT: v_lshrrev_b32_e32 v7, 16, v6 5267091dd27STim Gymnich; GFX6-NEXT: s_setpc_b64 s[30:31] 5277091dd27STim Gymnich; 5287091dd27STim Gymnich; GFX7-LABEL: v_abs_v8i16: 5297091dd27STim Gymnich; GFX7: ; %bb.0: 5307091dd27STim Gymnich; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 5317091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v6, v6, 0, 16 5327091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v7, v7, 0, 16 5337091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v8, vcc, 0, v6 5347091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v6, v6, v8 5357091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v8, vcc, 0, v7 5367091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v7, v7, v8 5377091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v4, v4, 0, 16 5387091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v7, 16, v7 5397091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v5, v5, 0, 16 5407091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v6, v6, v7 5417091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v7, vcc, 0, v4 5427091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v4, v4, v7 5437091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v7, vcc, 0, v5 5447091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v5, v5, v7 5457091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v2, v2, 0, 16 5467091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v5, 16, v5 5477091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v3, v3, 0, 16 5487091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v4, v4, v5 5497091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v5, vcc, 0, v2 5507091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v2, v2, v5 5517091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v5, vcc, 0, v3 5527091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v3, v3, v5 5537091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v0, v0, 0, 16 5547091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v3, 16, v3 5557091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v1, v1, 0, 16 5567091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v2, v2, v3 5577091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v3, vcc, 0, v0 5587091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v0, v0, v3 5597091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v3, vcc, 0, v1 5607091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v1, v1, v3 5617091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v1, 16, v1 5627091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v0, v0, v1 5637091dd27STim Gymnich; GFX7-NEXT: v_alignbit_b32 v1, v2, v0, 16 5647091dd27STim Gymnich; GFX7-NEXT: v_alignbit_b32 v5, v6, v4, 16 5657091dd27STim Gymnich; GFX7-NEXT: v_lshrrev_b32_e32 v3, 16, v2 5667091dd27STim Gymnich; GFX7-NEXT: v_lshrrev_b32_e32 v7, 16, v6 5677091dd27STim Gymnich; GFX7-NEXT: s_setpc_b64 s[30:31] 5687091dd27STim Gymnich; 5697091dd27STim Gymnich; GFX8-LABEL: v_abs_v8i16: 5707091dd27STim Gymnich; GFX8: ; %bb.0: 5717091dd27STim Gymnich; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 57284e9401aSJeffrey Byrnes; GFX8-NEXT: v_mov_b32_e32 v4, 0 57384e9401aSJeffrey Byrnes; GFX8-NEXT: v_sub_u16_sdwa v5, v4, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 57484e9401aSJeffrey Byrnes; GFX8-NEXT: v_sub_u16_sdwa v6, v4, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 57584e9401aSJeffrey Byrnes; GFX8-NEXT: v_sub_u16_sdwa v7, v4, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 57684e9401aSJeffrey Byrnes; GFX8-NEXT: v_sub_u16_sdwa v4, v4, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 5777091dd27STim Gymnich; GFX8-NEXT: v_sub_u16_e32 v8, 0, v3 5787091dd27STim Gymnich; GFX8-NEXT: v_sub_u16_e32 v9, 0, v2 5797091dd27STim Gymnich; GFX8-NEXT: v_sub_u16_e32 v10, 0, v1 5807091dd27STim Gymnich; GFX8-NEXT: v_sub_u16_e32 v11, 0, v0 58184e9401aSJeffrey Byrnes; GFX8-NEXT: v_max_i16_sdwa v5, v3, v5 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 58284e9401aSJeffrey Byrnes; GFX8-NEXT: v_max_i16_sdwa v6, v2, v6 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 58384e9401aSJeffrey Byrnes; GFX8-NEXT: v_max_i16_sdwa v7, v1, v7 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 58484e9401aSJeffrey Byrnes; GFX8-NEXT: v_max_i16_sdwa v4, v0, v4 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 5857091dd27STim Gymnich; GFX8-NEXT: v_max_i16_e32 v0, v0, v11 5867091dd27STim Gymnich; GFX8-NEXT: v_max_i16_e32 v1, v1, v10 5877091dd27STim Gymnich; GFX8-NEXT: v_max_i16_e32 v2, v2, v9 5887091dd27STim Gymnich; GFX8-NEXT: v_max_i16_e32 v3, v3, v8 58984e9401aSJeffrey Byrnes; GFX8-NEXT: v_or_b32_e32 v0, v0, v4 59084e9401aSJeffrey Byrnes; GFX8-NEXT: v_or_b32_e32 v1, v1, v7 59184e9401aSJeffrey Byrnes; GFX8-NEXT: v_or_b32_e32 v2, v2, v6 59284e9401aSJeffrey Byrnes; GFX8-NEXT: v_or_b32_e32 v3, v3, v5 5937091dd27STim Gymnich; GFX8-NEXT: s_setpc_b64 s[30:31] 5947091dd27STim Gymnich; 5957091dd27STim Gymnich; GFX9-LABEL: v_abs_v8i16: 5967091dd27STim Gymnich; GFX9: ; %bb.0: 5977091dd27STim Gymnich; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 5987091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v4, 0, v0 5997091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v0, v0, v4 6007091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v4, 0, v1 6017091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v1, v1, v4 6027091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v4, 0, v2 6037091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v2, v2, v4 6047091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v4, 0, v3 6057091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v3, v3, v4 6067091dd27STim Gymnich; GFX9-NEXT: s_setpc_b64 s[30:31] 6077091dd27STim Gymnich; 6087091dd27STim Gymnich; GFX10-LABEL: v_abs_v8i16: 6097091dd27STim Gymnich; GFX10: ; %bb.0: 6107091dd27STim Gymnich; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 6117091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v4, 0, v0 6127091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v5, 0, v1 6137091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v6, 0, v2 6147091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v7, 0, v3 6157091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v0, v0, v4 6167091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v1, v1, v5 6177091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v2, v2, v6 6187091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v3, v3, v7 6197091dd27STim Gymnich; GFX10-NEXT: s_setpc_b64 s[30:31] 6207091dd27STim Gymnich; 6217091dd27STim Gymnich; GFX11-LABEL: v_abs_v8i16: 6227091dd27STim Gymnich; GFX11: ; %bb.0: 6237091dd27STim Gymnich; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 6247091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v4, 0, v0 6257091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v5, 0, v1 6267091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v6, 0, v2 6277091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v7, 0, v3 6287091dd27STim Gymnich; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4) 6297091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v0, v0, v4 6307091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v1, v1, v5 6317091dd27STim Gymnich; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4) 6327091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v2, v2, v6 6337091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v3, v3, v7 6347091dd27STim Gymnich; GFX11-NEXT: s_setpc_b64 s[30:31] 6357091dd27STim Gymnich; 6367091dd27STim Gymnich; GFX12-LABEL: v_abs_v8i16: 6377091dd27STim Gymnich; GFX12: ; %bb.0: 6387091dd27STim Gymnich; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0 6397091dd27STim Gymnich; GFX12-NEXT: s_wait_expcnt 0x0 6407091dd27STim Gymnich; GFX12-NEXT: s_wait_samplecnt 0x0 6417091dd27STim Gymnich; GFX12-NEXT: s_wait_bvhcnt 0x0 6427091dd27STim Gymnich; GFX12-NEXT: s_wait_kmcnt 0x0 6437091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v4, 0, v0 6447091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v5, 0, v1 6457091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v6, 0, v2 6467091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v7, 0, v3 6477091dd27STim Gymnich; GFX12-NEXT: s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4) 6487091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v0, v0, v4 6497091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v1, v1, v5 6507091dd27STim Gymnich; GFX12-NEXT: s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4) 6517091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v2, v2, v6 6527091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v3, v3, v7 6537091dd27STim Gymnich; GFX12-NEXT: s_setpc_b64 s[30:31] 6547091dd27STim Gymnich %res = call <8 x i16> @llvm.abs.v8i16(<8 x i16> %arg, i1 false) 6557091dd27STim Gymnich ret <8 x i16> %res 6567091dd27STim Gymnich} 6577091dd27STim Gymnich 6587091dd27STim Gymnich 6597091dd27STim Gymnichdefine <16 x i16> @v_abs_v16i16(<16 x i16> %arg) { 6607091dd27STim Gymnich; GFX6-LABEL: v_abs_v16i16: 6617091dd27STim Gymnich; GFX6: ; %bb.0: 6627091dd27STim Gymnich; GFX6-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 6637091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v14, v14, 0, 16 6647091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v15, v15, 0, 16 6657091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v16, vcc, 0, v14 6667091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v14, v14, v16 6677091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v16, vcc, 0, v15 6687091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v15, v15, v16 6697091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v12, v12, 0, 16 6707091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v15, 16, v15 6717091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v13, v13, 0, 16 6727091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v14, v14, v15 6737091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v15, vcc, 0, v12 6747091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v12, v12, v15 6757091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v15, vcc, 0, v13 6767091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v13, v13, v15 6777091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v10, v10, 0, 16 6787091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v13, 16, v13 6797091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v11, v11, 0, 16 6807091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v12, v12, v13 6817091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v13, vcc, 0, v10 6827091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v10, v10, v13 6837091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v13, vcc, 0, v11 6847091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v11, v11, v13 6857091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v8, v8, 0, 16 6867091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v11, 16, v11 6877091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v9, v9, 0, 16 6887091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v10, v10, v11 6897091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v11, vcc, 0, v8 6907091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v8, v8, v11 6917091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v11, vcc, 0, v9 6927091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v9, v9, v11 6937091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v6, v6, 0, 16 6947091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v9, 16, v9 6957091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v7, v7, 0, 16 6967091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v8, v8, v9 6977091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v9, vcc, 0, v6 6987091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v6, v6, v9 6997091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v9, vcc, 0, v7 7007091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v7, v7, v9 7017091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v4, v4, 0, 16 7027091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v7, 16, v7 7037091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v5, v5, 0, 16 7047091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v6, v6, v7 7057091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v7, vcc, 0, v4 7067091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v4, v4, v7 7077091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v7, vcc, 0, v5 7087091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v5, v5, v7 7097091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v2, v2, 0, 16 7107091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v5, 16, v5 7117091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v3, v3, 0, 16 7127091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v4, v4, v5 7137091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v5, vcc, 0, v2 7147091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v2, v2, v5 7157091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v5, vcc, 0, v3 7167091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v3, v3, v5 7177091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v0, v0, 0, 16 7187091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v3, 16, v3 7197091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v1, v1, 0, 16 7207091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v2, v2, v3 7217091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v3, vcc, 0, v0 7227091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v0, v0, v3 7237091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v3, vcc, 0, v1 7247091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v1, v1, v3 7257091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v1, 16, v1 7267091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v0, v0, v1 7277091dd27STim Gymnich; GFX6-NEXT: v_alignbit_b32 v1, v2, v0, 16 7287091dd27STim Gymnich; GFX6-NEXT: v_alignbit_b32 v5, v6, v4, 16 7297091dd27STim Gymnich; GFX6-NEXT: v_alignbit_b32 v9, v10, v8, 16 7307091dd27STim Gymnich; GFX6-NEXT: v_alignbit_b32 v13, v14, v12, 16 7317091dd27STim Gymnich; GFX6-NEXT: v_lshrrev_b32_e32 v3, 16, v2 7327091dd27STim Gymnich; GFX6-NEXT: v_lshrrev_b32_e32 v7, 16, v6 7337091dd27STim Gymnich; GFX6-NEXT: v_lshrrev_b32_e32 v11, 16, v10 7347091dd27STim Gymnich; GFX6-NEXT: v_lshrrev_b32_e32 v15, 16, v14 7357091dd27STim Gymnich; GFX6-NEXT: s_setpc_b64 s[30:31] 7367091dd27STim Gymnich; 7377091dd27STim Gymnich; GFX7-LABEL: v_abs_v16i16: 7387091dd27STim Gymnich; GFX7: ; %bb.0: 7397091dd27STim Gymnich; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 7407091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v14, v14, 0, 16 7417091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v15, v15, 0, 16 7427091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v16, vcc, 0, v14 7437091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v14, v14, v16 7447091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v16, vcc, 0, v15 7457091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v15, v15, v16 7467091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v12, v12, 0, 16 7477091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v15, 16, v15 7487091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v13, v13, 0, 16 7497091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v14, v14, v15 7507091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v15, vcc, 0, v12 7517091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v12, v12, v15 7527091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v15, vcc, 0, v13 7537091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v13, v13, v15 7547091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v10, v10, 0, 16 7557091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v13, 16, v13 7567091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v11, v11, 0, 16 7577091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v12, v12, v13 7587091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v13, vcc, 0, v10 7597091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v10, v10, v13 7607091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v13, vcc, 0, v11 7617091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v11, v11, v13 7627091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v8, v8, 0, 16 7637091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v11, 16, v11 7647091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v9, v9, 0, 16 7657091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v10, v10, v11 7667091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v11, vcc, 0, v8 7677091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v8, v8, v11 7687091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v11, vcc, 0, v9 7697091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v9, v9, v11 7707091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v6, v6, 0, 16 7717091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v9, 16, v9 7727091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v7, v7, 0, 16 7737091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v8, v8, v9 7747091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v9, vcc, 0, v6 7757091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v6, v6, v9 7767091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v9, vcc, 0, v7 7777091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v7, v7, v9 7787091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v4, v4, 0, 16 7797091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v7, 16, v7 7807091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v5, v5, 0, 16 7817091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v6, v6, v7 7827091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v7, vcc, 0, v4 7837091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v4, v4, v7 7847091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v7, vcc, 0, v5 7857091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v5, v5, v7 7867091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v2, v2, 0, 16 7877091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v5, 16, v5 7887091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v3, v3, 0, 16 7897091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v4, v4, v5 7907091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v5, vcc, 0, v2 7917091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v2, v2, v5 7927091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v5, vcc, 0, v3 7937091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v3, v3, v5 7947091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v0, v0, 0, 16 7957091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v3, 16, v3 7967091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v1, v1, 0, 16 7977091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v2, v2, v3 7987091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v3, vcc, 0, v0 7997091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v0, v0, v3 8007091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v3, vcc, 0, v1 8017091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v1, v1, v3 8027091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v1, 16, v1 8037091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v0, v0, v1 8047091dd27STim Gymnich; GFX7-NEXT: v_alignbit_b32 v1, v2, v0, 16 8057091dd27STim Gymnich; GFX7-NEXT: v_alignbit_b32 v5, v6, v4, 16 8067091dd27STim Gymnich; GFX7-NEXT: v_alignbit_b32 v9, v10, v8, 16 8077091dd27STim Gymnich; GFX7-NEXT: v_alignbit_b32 v13, v14, v12, 16 8087091dd27STim Gymnich; GFX7-NEXT: v_lshrrev_b32_e32 v3, 16, v2 8097091dd27STim Gymnich; GFX7-NEXT: v_lshrrev_b32_e32 v7, 16, v6 8107091dd27STim Gymnich; GFX7-NEXT: v_lshrrev_b32_e32 v11, 16, v10 8117091dd27STim Gymnich; GFX7-NEXT: v_lshrrev_b32_e32 v15, 16, v14 8127091dd27STim Gymnich; GFX7-NEXT: s_setpc_b64 s[30:31] 8137091dd27STim Gymnich; 8147091dd27STim Gymnich; GFX8-LABEL: v_abs_v16i16: 8157091dd27STim Gymnich; GFX8: ; %bb.0: 8167091dd27STim Gymnich; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 81784e9401aSJeffrey Byrnes; GFX8-NEXT: v_mov_b32_e32 v8, 0 81884e9401aSJeffrey Byrnes; GFX8-NEXT: v_sub_u16_sdwa v9, v8, v7 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 81984e9401aSJeffrey Byrnes; GFX8-NEXT: v_sub_u16_sdwa v10, v8, v6 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 82084e9401aSJeffrey Byrnes; GFX8-NEXT: v_sub_u16_sdwa v11, v8, v5 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 82184e9401aSJeffrey Byrnes; GFX8-NEXT: v_sub_u16_sdwa v12, v8, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 82284e9401aSJeffrey Byrnes; GFX8-NEXT: v_sub_u16_sdwa v13, v8, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 82384e9401aSJeffrey Byrnes; GFX8-NEXT: v_sub_u16_sdwa v14, v8, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 82484e9401aSJeffrey Byrnes; GFX8-NEXT: v_sub_u16_sdwa v15, v8, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 82584e9401aSJeffrey Byrnes; GFX8-NEXT: v_sub_u16_sdwa v8, v8, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 826*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_e32 v19, 0, v0 827*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_sdwa v8, v0, v8 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 828*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_e32 v0, v0, v19 829*6206f544SLucas Ramirez; GFX8-NEXT: v_or_b32_e32 v0, v0, v8 830*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_e32 v8, 0, v1 831*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_sdwa v15, v1, v15 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 832*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_e32 v1, v1, v8 8337091dd27STim Gymnich; GFX8-NEXT: v_sub_u16_e32 v16, 0, v7 8347091dd27STim Gymnich; GFX8-NEXT: v_sub_u16_e32 v17, 0, v6 8357091dd27STim Gymnich; GFX8-NEXT: v_sub_u16_e32 v18, 0, v5 8367091dd27STim Gymnich; GFX8-NEXT: v_sub_u16_e32 v19, 0, v4 837*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_e32 v8, 0, v3 838*6206f544SLucas Ramirez; GFX8-NEXT: v_or_b32_e32 v1, v1, v15 839*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_e32 v15, 0, v2 84084e9401aSJeffrey Byrnes; GFX8-NEXT: v_max_i16_sdwa v9, v7, v9 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 84184e9401aSJeffrey Byrnes; GFX8-NEXT: v_max_i16_sdwa v10, v6, v10 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 84284e9401aSJeffrey Byrnes; GFX8-NEXT: v_max_i16_sdwa v11, v5, v11 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 84384e9401aSJeffrey Byrnes; GFX8-NEXT: v_max_i16_sdwa v12, v4, v12 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 84484e9401aSJeffrey Byrnes; GFX8-NEXT: v_max_i16_sdwa v13, v3, v13 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 84584e9401aSJeffrey Byrnes; GFX8-NEXT: v_max_i16_sdwa v14, v2, v14 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 846*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_e32 v2, v2, v15 847*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_e32 v3, v3, v8 8487091dd27STim Gymnich; GFX8-NEXT: v_max_i16_e32 v4, v4, v19 8497091dd27STim Gymnich; GFX8-NEXT: v_max_i16_e32 v5, v5, v18 8507091dd27STim Gymnich; GFX8-NEXT: v_max_i16_e32 v6, v6, v17 8517091dd27STim Gymnich; GFX8-NEXT: v_max_i16_e32 v7, v7, v16 85284e9401aSJeffrey Byrnes; GFX8-NEXT: v_or_b32_e32 v2, v2, v14 85384e9401aSJeffrey Byrnes; GFX8-NEXT: v_or_b32_e32 v3, v3, v13 85484e9401aSJeffrey Byrnes; GFX8-NEXT: v_or_b32_e32 v4, v4, v12 85584e9401aSJeffrey Byrnes; GFX8-NEXT: v_or_b32_e32 v5, v5, v11 85684e9401aSJeffrey Byrnes; GFX8-NEXT: v_or_b32_e32 v6, v6, v10 85784e9401aSJeffrey Byrnes; GFX8-NEXT: v_or_b32_e32 v7, v7, v9 8587091dd27STim Gymnich; GFX8-NEXT: s_setpc_b64 s[30:31] 8597091dd27STim Gymnich; 8607091dd27STim Gymnich; GFX9-LABEL: v_abs_v16i16: 8617091dd27STim Gymnich; GFX9: ; %bb.0: 8627091dd27STim Gymnich; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 8637091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v8, 0, v0 8647091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v0, v0, v8 8657091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v8, 0, v1 8667091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v1, v1, v8 8677091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v8, 0, v2 8687091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v2, v2, v8 8697091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v8, 0, v3 8707091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v3, v3, v8 8717091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v8, 0, v4 8727091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v4, v4, v8 8737091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v8, 0, v5 8747091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v5, v5, v8 8757091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v8, 0, v6 8767091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v6, v6, v8 8777091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v8, 0, v7 8787091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v7, v7, v8 8797091dd27STim Gymnich; GFX9-NEXT: s_setpc_b64 s[30:31] 8807091dd27STim Gymnich; 8817091dd27STim Gymnich; GFX10-LABEL: v_abs_v16i16: 8827091dd27STim Gymnich; GFX10: ; %bb.0: 8837091dd27STim Gymnich; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 8847091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v8, 0, v0 8857091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v9, 0, v1 8867091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v10, 0, v2 8877091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v11, 0, v6 8887091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v12, 0, v7 8897091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v0, v0, v8 8907091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v1, v1, v9 8917091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v2, v2, v10 8927091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v8, 0, v3 8937091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v9, 0, v4 8947091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v10, 0, v5 8957091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v6, v6, v11 8967091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v7, v7, v12 8977091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v3, v3, v8 8987091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v4, v4, v9 8997091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v5, v5, v10 9007091dd27STim Gymnich; GFX10-NEXT: s_setpc_b64 s[30:31] 9017091dd27STim Gymnich; 9027091dd27STim Gymnich; GFX11-LABEL: v_abs_v16i16: 9037091dd27STim Gymnich; GFX11: ; %bb.0: 9047091dd27STim Gymnich; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 9057091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v8, 0, v0 9067091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v9, 0, v1 9077091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v10, 0, v2 9087091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v11, 0, v6 9097091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v12, 0, v7 9107091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v0, v0, v8 9117091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v1, v1, v9 9127091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v2, v2, v10 9137091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v8, 0, v3 9147091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v9, 0, v4 9157091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v10, 0, v5 9167091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v6, v6, v11 9177091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v7, v7, v12 9187091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v3, v3, v8 9197091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v4, v4, v9 9207091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v5, v5, v10 9217091dd27STim Gymnich; GFX11-NEXT: s_setpc_b64 s[30:31] 9227091dd27STim Gymnich; 9237091dd27STim Gymnich; GFX12-LABEL: v_abs_v16i16: 9247091dd27STim Gymnich; GFX12: ; %bb.0: 9257091dd27STim Gymnich; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0 9267091dd27STim Gymnich; GFX12-NEXT: s_wait_expcnt 0x0 9277091dd27STim Gymnich; GFX12-NEXT: s_wait_samplecnt 0x0 9287091dd27STim Gymnich; GFX12-NEXT: s_wait_bvhcnt 0x0 9297091dd27STim Gymnich; GFX12-NEXT: s_wait_kmcnt 0x0 9307091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v8, 0, v0 9317091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v9, 0, v1 9327091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v10, 0, v2 9337091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v11, 0, v6 9347091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v12, 0, v7 9357091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v0, v0, v8 9367091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v1, v1, v9 9377091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v2, v2, v10 9387091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v8, 0, v3 9397091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v9, 0, v4 9407091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v10, 0, v5 9417091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v6, v6, v11 9427091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v7, v7, v12 9437091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v3, v3, v8 9447091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v4, v4, v9 9457091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v5, v5, v10 9467091dd27STim Gymnich; GFX12-NEXT: s_setpc_b64 s[30:31] 9477091dd27STim Gymnich %res = call <16 x i16> @llvm.abs.v16i16(<16 x i16> %arg, i1 false) 9487091dd27STim Gymnich ret <16 x i16> %res 9497091dd27STim Gymnich} 9507091dd27STim Gymnich 9517091dd27STim Gymnichdefine <32 x i16> @v_abs_v32i16(<32 x i16> %arg) { 9527091dd27STim Gymnich; GFX6-LABEL: v_abs_v32i16: 9537091dd27STim Gymnich; GFX6: ; %bb.0: 9547091dd27STim Gymnich; GFX6-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 9557091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v28, v28, 0, 16 9567091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v31, vcc, 0, v28 9577091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v29, v29, 0, 16 9587091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v28, v28, v31 9597091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v31, vcc, 0, v29 9607091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v30, v30, 0, 16 9617091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v29, v29, v31 9627091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v31, vcc, 0, v30 9637091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v26, v26, 0, 16 9647091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v30, v30, v31 9657091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v31, vcc, 0, v26 9667091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v27, v27, 0, 16 9677091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v26, v26, v31 9687091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v31, vcc, 0, v27 9697091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v24, v24, 0, 16 9707091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v27, v27, v31 9717091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v31, vcc, 0, v24 9727091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v25, v25, 0, 16 9737091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v24, v24, v31 9747091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v31, vcc, 0, v25 9757091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v22, v22, 0, 16 9767091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v25, v25, v31 9777091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v31, vcc, 0, v22 9787091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v23, v23, 0, 16 9797091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v22, v22, v31 9807091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v31, vcc, 0, v23 9817091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v23, v23, v31 9827091dd27STim Gymnich; GFX6-NEXT: buffer_load_dword v31, off, s[0:3], s32 9837091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v23, 16, v23 9847091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v25, 16, v25 9857091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v22, v22, v23 9867091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v24, v24, v25 9877091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v21, v21, 0, 16 9887091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v20, v20, 0, 16 9897091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v29, 16, v29 9907091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v28, v28, v29 9917091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v29, vcc, 0, v20 9927091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v20, v20, v29 9937091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v18, v18, 0, 16 9947091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v19, v19, 0, 16 9957091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v16, v16, 0, 16 9967091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v17, v17, 0, 16 9977091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v14, v14, 0, 16 9987091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v15, v15, 0, 16 9997091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v12, v12, 0, 16 10007091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v13, v13, 0, 16 10017091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v10, v10, 0, 16 10027091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v11, v11, 0, 16 10037091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v8, v8, 0, 16 10047091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v9, v9, 0, 16 10057091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v6, v6, 0, 16 10067091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v7, v7, 0, 16 10077091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v4, v4, 0, 16 10087091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v5, v5, 0, 16 10097091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v2, v2, 0, 16 10107091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v3, v3, 0, 16 10117091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v0, v0, 0, 16 10127091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v1, v1, 0, 16 10137091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v27, 16, v27 10147091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v26, v26, v27 10157091dd27STim Gymnich; GFX6-NEXT: v_lshrrev_b32_e32 v27, 16, v26 10167091dd27STim Gymnich; GFX6-NEXT: s_waitcnt vmcnt(0) 10177091dd27STim Gymnich; GFX6-NEXT: v_bfe_i32 v23, v31, 0, 16 10187091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v25, vcc, 0, v23 10197091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v23, v23, v25 10207091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v23, 16, v23 10217091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v30, v30, v23 10227091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v23, vcc, 0, v21 10237091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v21, v21, v23 10247091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v21, 16, v21 10257091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v20, v20, v21 10267091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v21, vcc, 0, v18 10277091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v18, v18, v21 10287091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v21, vcc, 0, v19 10297091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v19, v19, v21 10307091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v19, 16, v19 10317091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v18, v18, v19 10327091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v19, vcc, 0, v16 10337091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v16, v16, v19 10347091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v19, vcc, 0, v17 10357091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v17, v17, v19 10367091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v17, 16, v17 10377091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v16, v16, v17 10387091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v17, vcc, 0, v14 10397091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v14, v14, v17 10407091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v17, vcc, 0, v15 10417091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v15, v15, v17 10427091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v15, 16, v15 10437091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v14, v14, v15 10447091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v15, vcc, 0, v12 10457091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v12, v12, v15 10467091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v15, vcc, 0, v13 10477091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v13, v13, v15 10487091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v13, 16, v13 10497091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v12, v12, v13 10507091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v13, vcc, 0, v10 10517091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v10, v10, v13 10527091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v13, vcc, 0, v11 10537091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v11, v11, v13 10547091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v11, 16, v11 10557091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v10, v10, v11 10567091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v11, vcc, 0, v8 10577091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v8, v8, v11 10587091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v11, vcc, 0, v9 10597091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v9, v9, v11 10607091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v9, 16, v9 10617091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v8, v8, v9 10627091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v9, vcc, 0, v6 10637091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v6, v6, v9 10647091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v9, vcc, 0, v7 10657091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v7, v7, v9 10667091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v7, 16, v7 10677091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v6, v6, v7 10687091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v7, vcc, 0, v4 10697091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v4, v4, v7 10707091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v7, vcc, 0, v5 10717091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v5, v5, v7 10727091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v5, 16, v5 10737091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v4, v4, v5 10747091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v5, vcc, 0, v2 10757091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v2, v2, v5 10767091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v5, vcc, 0, v3 10777091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v3, v3, v5 10787091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v3, 16, v3 10797091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v2, v2, v3 10807091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v3, vcc, 0, v0 10817091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v0, v0, v3 10827091dd27STim Gymnich; GFX6-NEXT: v_sub_i32_e32 v3, vcc, 0, v1 10837091dd27STim Gymnich; GFX6-NEXT: v_max_i32_e32 v1, v1, v3 10847091dd27STim Gymnich; GFX6-NEXT: v_lshlrev_b32_e32 v1, 16, v1 10857091dd27STim Gymnich; GFX6-NEXT: v_or_b32_e32 v0, v0, v1 10867091dd27STim Gymnich; GFX6-NEXT: v_alignbit_b32 v1, v2, v0, 16 10877091dd27STim Gymnich; GFX6-NEXT: v_alignbit_b32 v5, v6, v4, 16 10887091dd27STim Gymnich; GFX6-NEXT: v_alignbit_b32 v9, v10, v8, 16 10897091dd27STim Gymnich; GFX6-NEXT: v_alignbit_b32 v13, v14, v12, 16 10907091dd27STim Gymnich; GFX6-NEXT: v_alignbit_b32 v17, v18, v16, 16 10917091dd27STim Gymnich; GFX6-NEXT: v_alignbit_b32 v21, v22, v20, 16 10927091dd27STim Gymnich; GFX6-NEXT: v_alignbit_b32 v25, v26, v24, 16 10937091dd27STim Gymnich; GFX6-NEXT: v_alignbit_b32 v29, v30, v28, 16 10947091dd27STim Gymnich; GFX6-NEXT: v_lshrrev_b32_e32 v3, 16, v2 10957091dd27STim Gymnich; GFX6-NEXT: v_lshrrev_b32_e32 v7, 16, v6 10967091dd27STim Gymnich; GFX6-NEXT: v_lshrrev_b32_e32 v11, 16, v10 10977091dd27STim Gymnich; GFX6-NEXT: v_lshrrev_b32_e32 v15, 16, v14 10987091dd27STim Gymnich; GFX6-NEXT: v_lshrrev_b32_e32 v19, 16, v18 10997091dd27STim Gymnich; GFX6-NEXT: v_lshrrev_b32_e32 v23, 16, v22 11007091dd27STim Gymnich; GFX6-NEXT: v_lshrrev_b32_e32 v31, 16, v30 11017091dd27STim Gymnich; GFX6-NEXT: s_setpc_b64 s[30:31] 11027091dd27STim Gymnich; 11037091dd27STim Gymnich; GFX7-LABEL: v_abs_v32i16: 11047091dd27STim Gymnich; GFX7: ; %bb.0: 11057091dd27STim Gymnich; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 11067091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v28, v28, 0, 16 11077091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v31, vcc, 0, v28 11087091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v29, v29, 0, 16 11097091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v28, v28, v31 11107091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v31, vcc, 0, v29 11117091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v30, v30, 0, 16 11127091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v29, v29, v31 11137091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v31, vcc, 0, v30 11147091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v26, v26, 0, 16 11157091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v30, v30, v31 11167091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v31, vcc, 0, v26 11177091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v27, v27, 0, 16 11187091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v26, v26, v31 11197091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v31, vcc, 0, v27 11207091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v24, v24, 0, 16 11217091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v27, v27, v31 11227091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v31, vcc, 0, v24 11237091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v25, v25, 0, 16 11247091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v24, v24, v31 11257091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v31, vcc, 0, v25 11267091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v22, v22, 0, 16 11277091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v25, v25, v31 11287091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v31, vcc, 0, v22 11297091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v23, v23, 0, 16 11307091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v22, v22, v31 11317091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v31, vcc, 0, v23 11327091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v23, v23, v31 11337091dd27STim Gymnich; GFX7-NEXT: buffer_load_dword v31, off, s[0:3], s32 11347091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v23, 16, v23 11357091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v25, 16, v25 11367091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v22, v22, v23 11377091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v24, v24, v25 11387091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v21, v21, 0, 16 11397091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v20, v20, 0, 16 11407091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v29, 16, v29 11417091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v28, v28, v29 11427091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v29, vcc, 0, v20 11437091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v20, v20, v29 11447091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v18, v18, 0, 16 11457091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v19, v19, 0, 16 11467091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v16, v16, 0, 16 11477091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v17, v17, 0, 16 11487091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v14, v14, 0, 16 11497091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v15, v15, 0, 16 11507091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v12, v12, 0, 16 11517091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v13, v13, 0, 16 11527091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v10, v10, 0, 16 11537091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v11, v11, 0, 16 11547091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v8, v8, 0, 16 11557091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v9, v9, 0, 16 11567091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v6, v6, 0, 16 11577091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v7, v7, 0, 16 11587091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v4, v4, 0, 16 11597091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v5, v5, 0, 16 11607091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v2, v2, 0, 16 11617091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v3, v3, 0, 16 11627091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v0, v0, 0, 16 11637091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v1, v1, 0, 16 11647091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v27, 16, v27 11657091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v26, v26, v27 11667091dd27STim Gymnich; GFX7-NEXT: v_lshrrev_b32_e32 v27, 16, v26 11677091dd27STim Gymnich; GFX7-NEXT: s_waitcnt vmcnt(0) 11687091dd27STim Gymnich; GFX7-NEXT: v_bfe_i32 v23, v31, 0, 16 11697091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v25, vcc, 0, v23 11707091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v23, v23, v25 11717091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v23, 16, v23 11727091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v30, v30, v23 11737091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v23, vcc, 0, v21 11747091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v21, v21, v23 11757091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v21, 16, v21 11767091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v20, v20, v21 11777091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v21, vcc, 0, v18 11787091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v18, v18, v21 11797091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v21, vcc, 0, v19 11807091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v19, v19, v21 11817091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v19, 16, v19 11827091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v18, v18, v19 11837091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v19, vcc, 0, v16 11847091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v16, v16, v19 11857091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v19, vcc, 0, v17 11867091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v17, v17, v19 11877091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v17, 16, v17 11887091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v16, v16, v17 11897091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v17, vcc, 0, v14 11907091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v14, v14, v17 11917091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v17, vcc, 0, v15 11927091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v15, v15, v17 11937091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v15, 16, v15 11947091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v14, v14, v15 11957091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v15, vcc, 0, v12 11967091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v12, v12, v15 11977091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v15, vcc, 0, v13 11987091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v13, v13, v15 11997091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v13, 16, v13 12007091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v12, v12, v13 12017091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v13, vcc, 0, v10 12027091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v10, v10, v13 12037091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v13, vcc, 0, v11 12047091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v11, v11, v13 12057091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v11, 16, v11 12067091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v10, v10, v11 12077091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v11, vcc, 0, v8 12087091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v8, v8, v11 12097091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v11, vcc, 0, v9 12107091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v9, v9, v11 12117091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v9, 16, v9 12127091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v8, v8, v9 12137091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v9, vcc, 0, v6 12147091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v6, v6, v9 12157091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v9, vcc, 0, v7 12167091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v7, v7, v9 12177091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v7, 16, v7 12187091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v6, v6, v7 12197091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v7, vcc, 0, v4 12207091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v4, v4, v7 12217091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v7, vcc, 0, v5 12227091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v5, v5, v7 12237091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v5, 16, v5 12247091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v4, v4, v5 12257091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v5, vcc, 0, v2 12267091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v2, v2, v5 12277091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v5, vcc, 0, v3 12287091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v3, v3, v5 12297091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v3, 16, v3 12307091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v2, v2, v3 12317091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v3, vcc, 0, v0 12327091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v0, v0, v3 12337091dd27STim Gymnich; GFX7-NEXT: v_sub_i32_e32 v3, vcc, 0, v1 12347091dd27STim Gymnich; GFX7-NEXT: v_max_i32_e32 v1, v1, v3 12357091dd27STim Gymnich; GFX7-NEXT: v_lshlrev_b32_e32 v1, 16, v1 12367091dd27STim Gymnich; GFX7-NEXT: v_or_b32_e32 v0, v0, v1 12377091dd27STim Gymnich; GFX7-NEXT: v_alignbit_b32 v1, v2, v0, 16 12387091dd27STim Gymnich; GFX7-NEXT: v_alignbit_b32 v5, v6, v4, 16 12397091dd27STim Gymnich; GFX7-NEXT: v_alignbit_b32 v9, v10, v8, 16 12407091dd27STim Gymnich; GFX7-NEXT: v_alignbit_b32 v13, v14, v12, 16 12417091dd27STim Gymnich; GFX7-NEXT: v_alignbit_b32 v17, v18, v16, 16 12427091dd27STim Gymnich; GFX7-NEXT: v_alignbit_b32 v21, v22, v20, 16 12437091dd27STim Gymnich; GFX7-NEXT: v_alignbit_b32 v25, v26, v24, 16 12447091dd27STim Gymnich; GFX7-NEXT: v_alignbit_b32 v29, v30, v28, 16 12457091dd27STim Gymnich; GFX7-NEXT: v_lshrrev_b32_e32 v3, 16, v2 12467091dd27STim Gymnich; GFX7-NEXT: v_lshrrev_b32_e32 v7, 16, v6 12477091dd27STim Gymnich; GFX7-NEXT: v_lshrrev_b32_e32 v11, 16, v10 12487091dd27STim Gymnich; GFX7-NEXT: v_lshrrev_b32_e32 v15, 16, v14 12497091dd27STim Gymnich; GFX7-NEXT: v_lshrrev_b32_e32 v19, 16, v18 12507091dd27STim Gymnich; GFX7-NEXT: v_lshrrev_b32_e32 v23, 16, v22 12517091dd27STim Gymnich; GFX7-NEXT: v_lshrrev_b32_e32 v31, 16, v30 12527091dd27STim Gymnich; GFX7-NEXT: s_setpc_b64 s[30:31] 12537091dd27STim Gymnich; 12547091dd27STim Gymnich; GFX8-LABEL: v_abs_v32i16: 12557091dd27STim Gymnich; GFX8: ; %bb.0: 12567091dd27STim Gymnich; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 125784e9401aSJeffrey Byrnes; GFX8-NEXT: v_mov_b32_e32 v16, 0 1258*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_sdwa v18, v16, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 1259*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_e32 v19, 0, v0 1260*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_sdwa v18, v0, v18 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 1261*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_e32 v0, v0, v19 1262*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_sdwa v19, v16, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 1263*6206f544SLucas Ramirez; GFX8-NEXT: v_or_b32_e32 v0, v0, v18 1264*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_e32 v18, 0, v1 1265*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_sdwa v19, v1, v19 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 1266*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_e32 v1, v1, v18 1267*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_sdwa v18, v16, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 1268*6206f544SLucas Ramirez; GFX8-NEXT: v_or_b32_e32 v1, v1, v19 1269*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_e32 v19, 0, v2 1270*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_sdwa v18, v2, v18 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 1271*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_e32 v2, v2, v19 1272*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_sdwa v19, v16, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 1273*6206f544SLucas Ramirez; GFX8-NEXT: v_or_b32_e32 v2, v2, v18 1274*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_e32 v18, 0, v3 1275*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_sdwa v19, v3, v19 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 1276*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_e32 v3, v3, v18 1277*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_sdwa v18, v16, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 1278*6206f544SLucas Ramirez; GFX8-NEXT: v_or_b32_e32 v3, v3, v19 1279*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_e32 v19, 0, v4 1280*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_sdwa v18, v4, v18 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 1281*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_e32 v4, v4, v19 1282*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_sdwa v19, v16, v5 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 1283*6206f544SLucas Ramirez; GFX8-NEXT: v_or_b32_e32 v4, v4, v18 1284*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_e32 v18, 0, v5 1285*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_sdwa v19, v5, v19 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 1286*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_e32 v5, v5, v18 1287*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_sdwa v18, v16, v6 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 1288*6206f544SLucas Ramirez; GFX8-NEXT: v_or_b32_e32 v5, v5, v19 1289*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_e32 v19, 0, v6 1290*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_sdwa v18, v6, v18 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 1291*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_e32 v6, v6, v19 1292*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_sdwa v19, v16, v7 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 1293*6206f544SLucas Ramirez; GFX8-NEXT: v_or_b32_e32 v6, v6, v18 1294*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_e32 v18, 0, v7 1295*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_sdwa v19, v7, v19 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 1296*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_e32 v7, v7, v18 1297*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_sdwa v18, v16, v8 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 1298*6206f544SLucas Ramirez; GFX8-NEXT: v_or_b32_e32 v7, v7, v19 1299*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_e32 v19, 0, v8 1300*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_sdwa v18, v8, v18 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 1301*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_e32 v8, v8, v19 1302*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_sdwa v19, v16, v9 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 1303*6206f544SLucas Ramirez; GFX8-NEXT: v_or_b32_e32 v8, v8, v18 1304*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_e32 v18, 0, v9 1305*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_sdwa v19, v9, v19 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 1306*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_e32 v9, v9, v18 1307*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_sdwa v18, v16, v10 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 1308*6206f544SLucas Ramirez; GFX8-NEXT: v_or_b32_e32 v9, v9, v19 1309*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_e32 v19, 0, v10 1310*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_sdwa v18, v10, v18 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 1311*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_e32 v10, v10, v19 1312*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_sdwa v19, v16, v11 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 1313*6206f544SLucas Ramirez; GFX8-NEXT: v_or_b32_e32 v10, v10, v18 1314*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_e32 v18, 0, v11 1315*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_sdwa v19, v11, v19 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 1316*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_e32 v11, v11, v18 1317*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_sdwa v18, v16, v12 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 1318*6206f544SLucas Ramirez; GFX8-NEXT: v_or_b32_e32 v11, v11, v19 1319*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_e32 v19, 0, v12 1320*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_sdwa v18, v12, v18 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 1321*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_e32 v12, v12, v19 132284e9401aSJeffrey Byrnes; GFX8-NEXT: v_sub_u16_sdwa v17, v16, v15 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 1323*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_sdwa v19, v16, v14 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 1324*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_sdwa v16, v16, v13 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 1325*6206f544SLucas Ramirez; GFX8-NEXT: v_or_b32_e32 v12, v12, v18 1326*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_e32 v18, 0, v13 1327*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_sdwa v16, v13, v16 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 1328*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_e32 v13, v13, v18 1329*6206f544SLucas Ramirez; GFX8-NEXT: v_sub_u16_e32 v18, 0, v15 1330*6206f544SLucas Ramirez; GFX8-NEXT: v_or_b32_e32 v13, v13, v16 133184e9401aSJeffrey Byrnes; GFX8-NEXT: v_sub_u16_e32 v16, 0, v14 133284e9401aSJeffrey Byrnes; GFX8-NEXT: v_max_i16_sdwa v17, v15, v17 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 1333*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_sdwa v19, v14, v19 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD 133484e9401aSJeffrey Byrnes; GFX8-NEXT: v_max_i16_e32 v14, v14, v16 1335*6206f544SLucas Ramirez; GFX8-NEXT: v_max_i16_e32 v15, v15, v18 1336*6206f544SLucas Ramirez; GFX8-NEXT: v_or_b32_e32 v14, v14, v19 133784e9401aSJeffrey Byrnes; GFX8-NEXT: v_or_b32_e32 v15, v15, v17 13387091dd27STim Gymnich; GFX8-NEXT: s_setpc_b64 s[30:31] 13397091dd27STim Gymnich; 13407091dd27STim Gymnich; GFX9-LABEL: v_abs_v32i16: 13417091dd27STim Gymnich; GFX9: ; %bb.0: 13427091dd27STim Gymnich; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 13437091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v16, 0, v0 13447091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v0, v0, v16 13457091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v16, 0, v1 13467091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v1, v1, v16 13477091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v16, 0, v2 13487091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v2, v2, v16 13497091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v16, 0, v3 13507091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v3, v3, v16 13517091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v16, 0, v4 13527091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v4, v4, v16 13537091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v16, 0, v5 13547091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v5, v5, v16 13557091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v16, 0, v6 13567091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v6, v6, v16 13577091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v16, 0, v7 13587091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v7, v7, v16 13597091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v16, 0, v8 13607091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v8, v8, v16 13617091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v16, 0, v9 13627091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v9, v9, v16 13637091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v16, 0, v10 13647091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v10, v10, v16 13657091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v16, 0, v11 13667091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v11, v11, v16 13677091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v16, 0, v12 13687091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v12, v12, v16 13697091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v16, 0, v13 13707091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v13, v13, v16 13717091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v16, 0, v14 13727091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v14, v14, v16 13737091dd27STim Gymnich; GFX9-NEXT: v_pk_sub_i16 v16, 0, v15 13747091dd27STim Gymnich; GFX9-NEXT: v_pk_max_i16 v15, v15, v16 13757091dd27STim Gymnich; GFX9-NEXT: s_setpc_b64 s[30:31] 13767091dd27STim Gymnich; 13777091dd27STim Gymnich; GFX10-LABEL: v_abs_v32i16: 13787091dd27STim Gymnich; GFX10: ; %bb.0: 13797091dd27STim Gymnich; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 13807091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v16, 0, v0 13817091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v17, 0, v2 13827091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v18, 0, v3 13837091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v19, 0, v4 13847091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v20, 0, v5 13857091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v0, v0, v16 13867091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v16, 0, v1 13877091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v2, v2, v17 13887091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v3, v3, v18 13897091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v4, v4, v19 13907091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v5, v5, v20 13917091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v1, v1, v16 13927091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v16, 0, v6 13937091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v17, 0, v7 13947091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v18, 0, v8 13957091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v19, 0, v9 13967091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v20, 0, v10 13977091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v6, v6, v16 13987091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v7, v7, v17 13997091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v8, v8, v18 14007091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v9, v9, v19 14017091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v10, v10, v20 14027091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v16, 0, v11 14037091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v17, 0, v12 14047091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v18, 0, v13 14057091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v19, 0, v14 14067091dd27STim Gymnich; GFX10-NEXT: v_pk_sub_i16 v20, 0, v15 14077091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v11, v11, v16 14087091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v12, v12, v17 14097091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v13, v13, v18 14107091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v14, v14, v19 14117091dd27STim Gymnich; GFX10-NEXT: v_pk_max_i16 v15, v15, v20 14127091dd27STim Gymnich; GFX10-NEXT: s_setpc_b64 s[30:31] 14137091dd27STim Gymnich; 14147091dd27STim Gymnich; GFX11-LABEL: v_abs_v32i16: 14157091dd27STim Gymnich; GFX11: ; %bb.0: 14167091dd27STim Gymnich; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 14177091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v16, 0, v0 14187091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v17, 0, v2 14197091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v18, 0, v3 14207091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v19, 0, v4 14217091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v20, 0, v5 14227091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v0, v0, v16 14237091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v16, 0, v1 14247091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v2, v2, v17 14257091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v3, v3, v18 14267091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v4, v4, v19 14277091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v5, v5, v20 14287091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v1, v1, v16 14297091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v16, 0, v6 14307091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v17, 0, v7 14317091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v18, 0, v8 14327091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v19, 0, v9 14337091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v20, 0, v10 14347091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v6, v6, v16 14357091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v7, v7, v17 14367091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v8, v8, v18 14377091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v9, v9, v19 14387091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v10, v10, v20 14397091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v16, 0, v11 14407091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v17, 0, v12 14417091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v18, 0, v13 14427091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v19, 0, v14 14437091dd27STim Gymnich; GFX11-NEXT: v_pk_sub_i16 v20, 0, v15 14447091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v11, v11, v16 14457091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v12, v12, v17 14467091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v13, v13, v18 14477091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v14, v14, v19 14487091dd27STim Gymnich; GFX11-NEXT: v_pk_max_i16 v15, v15, v20 14497091dd27STim Gymnich; GFX11-NEXT: s_setpc_b64 s[30:31] 14507091dd27STim Gymnich; 14517091dd27STim Gymnich; GFX12-LABEL: v_abs_v32i16: 14527091dd27STim Gymnich; GFX12: ; %bb.0: 14537091dd27STim Gymnich; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0 14547091dd27STim Gymnich; GFX12-NEXT: s_wait_expcnt 0x0 14557091dd27STim Gymnich; GFX12-NEXT: s_wait_samplecnt 0x0 14567091dd27STim Gymnich; GFX12-NEXT: s_wait_bvhcnt 0x0 14577091dd27STim Gymnich; GFX12-NEXT: s_wait_kmcnt 0x0 14587091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v16, 0, v0 14597091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v17, 0, v2 14607091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v18, 0, v3 14617091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v19, 0, v4 14627091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v20, 0, v5 14637091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v0, v0, v16 14647091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v16, 0, v1 14657091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v2, v2, v17 14667091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v3, v3, v18 14677091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v4, v4, v19 14687091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v5, v5, v20 14697091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v1, v1, v16 14707091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v16, 0, v6 14717091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v17, 0, v7 14727091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v18, 0, v8 14737091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v19, 0, v9 14747091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v20, 0, v10 14757091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v6, v6, v16 14767091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v7, v7, v17 14777091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v8, v8, v18 14787091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v9, v9, v19 14797091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v10, v10, v20 14807091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v16, 0, v11 14817091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v17, 0, v12 14827091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v18, 0, v13 14837091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v19, 0, v14 14847091dd27STim Gymnich; GFX12-NEXT: v_pk_sub_i16 v20, 0, v15 14857091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v11, v11, v16 14867091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v12, v12, v17 14877091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v13, v13, v18 14887091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v14, v14, v19 14897091dd27STim Gymnich; GFX12-NEXT: v_pk_max_i16 v15, v15, v20 14907091dd27STim Gymnich; GFX12-NEXT: s_setpc_b64 s[30:31] 14917091dd27STim Gymnich %res = call <32 x i16> @llvm.abs.v32i16(<32 x i16> %arg, i1 false) 14927091dd27STim Gymnich ret <32 x i16> %res 14937091dd27STim Gymnich} 1494