summaryrefslogtreecommitdiffstats
path: root/llvm/test/MC/AMDGPU
diff options
context:
space:
mode:
authorJay Foad <jay.foad@amd.com>2020-01-12 21:33:11 +0000
committerJay Foad <jay.foad@amd.com>2020-01-14 08:20:28 +0000
commit63c3691f79179db9a16f260f1cf81475fdfef060 (patch)
tree464435defb14aae51f00c4c2234f0327d26cbc9f /llvm/test/MC/AMDGPU
parented810da73270267082c347bc2919eebb7978a2fe (diff)
downloadbcm5719-llvm-63c3691f79179db9a16f260f1cf81475fdfef060.tar.gz
bcm5719-llvm-63c3691f79179db9a16f260f1cf81475fdfef060.zip
[AMDGPU] Add gfx9 assembler and disassembler test cases
Summary: This adds assembler tests for cases that were previously only in the disassembler tests, and vice versa. Reviewers: rampitec, arsenm, nhaehnle Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, jfb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72592
Diffstat (limited to 'llvm/test/MC/AMDGPU')
-rw-r--r--llvm/test/MC/AMDGPU/gfx9_asm_all.s1044
1 files changed, 1044 insertions, 0 deletions
diff --git a/llvm/test/MC/AMDGPU/gfx9_asm_all.s b/llvm/test/MC/AMDGPU/gfx9_asm_all.s
index cb800da9ca6..6d37e2097ce 100644
--- a/llvm/test/MC/AMDGPU/gfx9_asm_all.s
+++ b/llvm/test/MC/AMDGPU/gfx9_asm_all.s
@@ -6262,6 +6262,9 @@ image_get_resinfo v[5:7], v1, s[8:15] dmask:0xd
image_get_resinfo v[5:7], v1, s[8:15] dmask:0xe
// CHECK: [0x00,0x0e,0x38,0xf0,0x01,0x05,0x02,0x00]
+image_get_resinfo v[5:8], v1, s[8:15] dmask:0xf
+// CHECK: [0x00,0x0f,0x38,0xf0,0x01,0x05,0x02,0x00]
+
image_get_resinfo v5, v1, s[8:15] dmask:0x0
// CHECK: [0x00,0x00,0x38,0xf0,0x01,0x05,0x02,0x00]
@@ -9583,6 +9586,12 @@ buffer_atomic_swap v5, off, s[8:11], 0 offset:4095
buffer_atomic_swap v5, off, s[8:11], -1 offset:4095
// CHECK: [0xff,0x0f,0x00,0xe1,0x00,0x05,0x02,0xc1]
+buffer_atomic_swap v5, off, s[8:11], 0.5 offset:4095
+// CHECK: [0xff,0x0f,0x00,0xe1,0x00,0x05,0x02,0xf0]
+
+buffer_atomic_swap v5, off, s[8:11], -4.0 offset:4095
+// CHECK: [0xff,0x0f,0x00,0xe1,0x00,0x05,0x02,0xf7]
+
buffer_atomic_swap v5, v0, s[8:11], s3 idxen offset:4095
// CHECK: [0xff,0x2f,0x00,0xe1,0x00,0x05,0x02,0x03]
@@ -9628,6 +9637,12 @@ buffer_atomic_cmpswap v[5:6], off, s[8:11], 0 offset:4095
buffer_atomic_cmpswap v[5:6], off, s[8:11], -1 offset:4095
// CHECK: [0xff,0x0f,0x04,0xe1,0x00,0x05,0x02,0xc1]
+buffer_atomic_cmpswap v[5:6], off, s[8:11], 0.5 offset:4095
+// CHECK: [0xff,0x0f,0x04,0xe1,0x00,0x05,0x02,0xf0]
+
+buffer_atomic_cmpswap v[5:6], off, s[8:11], -4.0 offset:4095
+// CHECK: [0xff,0x0f,0x04,0xe1,0x00,0x05,0x02,0xf7]
+
buffer_atomic_cmpswap v[5:6], v0, s[8:11], s3 idxen offset:4095
// CHECK: [0xff,0x2f,0x04,0xe1,0x00,0x05,0x02,0x03]
@@ -9673,6 +9688,12 @@ buffer_atomic_add v5, off, s[8:11], 0 offset:4095
buffer_atomic_add v5, off, s[8:11], -1 offset:4095
// CHECK: [0xff,0x0f,0x08,0xe1,0x00,0x05,0x02,0xc1]
+buffer_atomic_add v5, off, s[8:11], 0.5 offset:4095
+// CHECK: [0xff,0x0f,0x08,0xe1,0x00,0x05,0x02,0xf0]
+
+buffer_atomic_add v5, off, s[8:11], -4.0 offset:4095
+// CHECK: [0xff,0x0f,0x08,0xe1,0x00,0x05,0x02,0xf7]
+
buffer_atomic_add v5, v0, s[8:11], s3 idxen offset:4095
// CHECK: [0xff,0x2f,0x08,0xe1,0x00,0x05,0x02,0x03]
@@ -9718,6 +9739,12 @@ buffer_atomic_sub v5, off, s[8:11], 0 offset:4095
buffer_atomic_sub v5, off, s[8:11], -1 offset:4095
// CHECK: [0xff,0x0f,0x0c,0xe1,0x00,0x05,0x02,0xc1]
+buffer_atomic_sub v5, off, s[8:11], 0.5 offset:4095
+// CHECK: [0xff,0x0f,0x0c,0xe1,0x00,0x05,0x02,0xf0]
+
+buffer_atomic_sub v5, off, s[8:11], -4.0 offset:4095
+// CHECK: [0xff,0x0f,0x0c,0xe1,0x00,0x05,0x02,0xf7]
+
buffer_atomic_sub v5, v0, s[8:11], s3 idxen offset:4095
// CHECK: [0xff,0x2f,0x0c,0xe1,0x00,0x05,0x02,0x03]
@@ -9763,6 +9790,12 @@ buffer_atomic_smin v5, off, s[8:11], 0 offset:4095
buffer_atomic_smin v5, off, s[8:11], -1 offset:4095
// CHECK: [0xff,0x0f,0x10,0xe1,0x00,0x05,0x02,0xc1]
+buffer_atomic_smin v5, off, s[8:11], 0.5 offset:4095
+// CHECK: [0xff,0x0f,0x10,0xe1,0x00,0x05,0x02,0xf0]
+
+buffer_atomic_smin v5, off, s[8:11], -4.0 offset:4095
+// CHECK: [0xff,0x0f,0x10,0xe1,0x00,0x05,0x02,0xf7]
+
buffer_atomic_smin v5, v0, s[8:11], s3 idxen offset:4095
// CHECK: [0xff,0x2f,0x10,0xe1,0x00,0x05,0x02,0x03]
@@ -9808,6 +9841,12 @@ buffer_atomic_umin v5, off, s[8:11], 0 offset:4095
buffer_atomic_umin v5, off, s[8:11], -1 offset:4095
// CHECK: [0xff,0x0f,0x14,0xe1,0x00,0x05,0x02,0xc1]
+buffer_atomic_umin v5, off, s[8:11], 0.5 offset:4095
+// CHECK: [0xff,0x0f,0x14,0xe1,0x00,0x05,0x02,0xf0]
+
+buffer_atomic_umin v5, off, s[8:11], -4.0 offset:4095
+// CHECK: [0xff,0x0f,0x14,0xe1,0x00,0x05,0x02,0xf7]
+
buffer_atomic_umin v5, v0, s[8:11], s3 idxen offset:4095
// CHECK: [0xff,0x2f,0x14,0xe1,0x00,0x05,0x02,0x03]
@@ -9853,6 +9892,12 @@ buffer_atomic_smax v5, off, s[8:11], 0 offset:4095
buffer_atomic_smax v5, off, s[8:11], -1 offset:4095
// CHECK: [0xff,0x0f,0x18,0xe1,0x00,0x05,0x02,0xc1]
+buffer_atomic_smax v5, off, s[8:11], 0.5 offset:4095
+// CHECK: [0xff,0x0f,0x18,0xe1,0x00,0x05,0x02,0xf0]
+
+buffer_atomic_smax v5, off, s[8:11], -4.0 offset:4095
+// CHECK: [0xff,0x0f,0x18,0xe1,0x00,0x05,0x02,0xf7]
+
buffer_atomic_smax v5, v0, s[8:11], s3 idxen offset:4095
// CHECK: [0xff,0x2f,0x18,0xe1,0x00,0x05,0x02,0x03]
@@ -9898,6 +9943,12 @@ buffer_atomic_umax v5, off, s[8:11], 0 offset:4095
buffer_atomic_umax v5, off, s[8:11], -1 offset:4095
// CHECK: [0xff,0x0f,0x1c,0xe1,0x00,0x05,0x02,0xc1]
+buffer_atomic_umax v5, off, s[8:11], 0.5 offset:4095
+// CHECK: [0xff,0x0f,0x1c,0xe1,0x00,0x05,0x02,0xf0]
+
+buffer_atomic_umax v5, off, s[8:11], -4.0 offset:4095
+// CHECK: [0xff,0x0f,0x1c,0xe1,0x00,0x05,0x02,0xf7]
+
buffer_atomic_umax v5, v0, s[8:11], s3 idxen offset:4095
// CHECK: [0xff,0x2f,0x1c,0xe1,0x00,0x05,0x02,0x03]
@@ -9943,6 +9994,12 @@ buffer_atomic_and v5, off, s[8:11], 0 offset:4095
buffer_atomic_and v5, off, s[8:11], -1 offset:4095
// CHECK: [0xff,0x0f,0x20,0xe1,0x00,0x05,0x02,0xc1]
+buffer_atomic_and v5, off, s[8:11], 0.5 offset:4095
+// CHECK: [0xff,0x0f,0x20,0xe1,0x00,0x05,0x02,0xf0]
+
+buffer_atomic_and v5, off, s[8:11], -4.0 offset:4095
+// CHECK: [0xff,0x0f,0x20,0xe1,0x00,0x05,0x02,0xf7]
+
buffer_atomic_and v5, v0, s[8:11], s3 idxen offset:4095
// CHECK: [0xff,0x2f,0x20,0xe1,0x00,0x05,0x02,0x03]
@@ -9988,6 +10045,12 @@ buffer_atomic_or v5, off, s[8:11], 0 offset:4095
buffer_atomic_or v5, off, s[8:11], -1 offset:4095
// CHECK: [0xff,0x0f,0x24,0xe1,0x00,0x05,0x02,0xc1]
+buffer_atomic_or v5, off, s[8:11], 0.5 offset:4095
+// CHECK: [0xff,0x0f,0x24,0xe1,0x00,0x05,0x02,0xf0]
+
+buffer_atomic_or v5, off, s[8:11], -4.0 offset:4095
+// CHECK: [0xff,0x0f,0x24,0xe1,0x00,0x05,0x02,0xf7]
+
buffer_atomic_or v5, v0, s[8:11], s3 idxen offset:4095
// CHECK: [0xff,0x2f,0x24,0xe1,0x00,0x05,0x02,0x03]
@@ -10033,6 +10096,12 @@ buffer_atomic_xor v5, off, s[8:11], 0 offset:4095
buffer_atomic_xor v5, off, s[8:11], -1 offset:4095
// CHECK: [0xff,0x0f,0x28,0xe1,0x00,0x05,0x02,0xc1]
+buffer_atomic_xor v5, off, s[8:11], 0.5 offset:4095
+// CHECK: [0xff,0x0f,0x28,0xe1,0x00,0x05,0x02,0xf0]
+
+buffer_atomic_xor v5, off, s[8:11], -4.0 offset:4095
+// CHECK: [0xff,0x0f,0x28,0xe1,0x00,0x05,0x02,0xf7]
+
buffer_atomic_xor v5, v0, s[8:11], s3 idxen offset:4095
// CHECK: [0xff,0x2f,0x28,0xe1,0x00,0x05,0x02,0x03]
@@ -10078,6 +10147,12 @@ buffer_atomic_inc v5, off, s[8:11], 0 offset:4095
buffer_atomic_inc v5, off, s[8:11], -1 offset:4095
// CHECK: [0xff,0x0f,0x2c,0xe1,0x00,0x05,0x02,0xc1]
+buffer_atomic_inc v5, off, s[8:11], 0.5 offset:4095
+// CHECK: [0xff,0x0f,0x2c,0xe1,0x00,0x05,0x02,0xf0]
+
+buffer_atomic_inc v5, off, s[8:11], -4.0 offset:4095
+// CHECK: [0xff,0x0f,0x2c,0xe1,0x00,0x05,0x02,0xf7]
+
buffer_atomic_inc v5, v0, s[8:11], s3 idxen offset:4095
// CHECK: [0xff,0x2f,0x2c,0xe1,0x00,0x05,0x02,0x03]
@@ -10123,6 +10198,12 @@ buffer_atomic_dec v5, off, s[8:11], 0 offset:4095
buffer_atomic_dec v5, off, s[8:11], -1 offset:4095
// CHECK: [0xff,0x0f,0x30,0xe1,0x00,0x05,0x02,0xc1]
+buffer_atomic_dec v5, off, s[8:11], 0.5 offset:4095
+// CHECK: [0xff,0x0f,0x30,0xe1,0x00,0x05,0x02,0xf0]
+
+buffer_atomic_dec v5, off, s[8:11], -4.0 offset:4095
+// CHECK: [0xff,0x0f,0x30,0xe1,0x00,0x05,0x02,0xf7]
+
buffer_atomic_dec v5, v0, s[8:11], s3 idxen offset:4095
// CHECK: [0xff,0x2f,0x30,0xe1,0x00,0x05,0x02,0x03]
@@ -10168,6 +10249,12 @@ buffer_atomic_swap_x2 v[5:6], off, s[8:11], 0 offset:4095
buffer_atomic_swap_x2 v[5:6], off, s[8:11], -1 offset:4095
// CHECK: [0xff,0x0f,0x80,0xe1,0x00,0x05,0x02,0xc1]
+buffer_atomic_swap_x2 v[5:6], off, s[8:11], 0.5 offset:4095
+// CHECK: [0xff,0x0f,0x80,0xe1,0x00,0x05,0x02,0xf0]
+
+buffer_atomic_swap_x2 v[5:6], off, s[8:11], -4.0 offset:4095
+// CHECK: [0xff,0x0f,0x80,0xe1,0x00,0x05,0x02,0xf7]
+
buffer_atomic_swap_x2 v[5:6], v0, s[8:11], s3 idxen offset:4095
// CHECK: [0xff,0x2f,0x80,0xe1,0x00,0x05,0x02,0x03]
@@ -10213,6 +10300,12 @@ buffer_atomic_cmpswap_x2 v[5:8], off, s[8:11], 0 offset:4095
buffer_atomic_cmpswap_x2 v[5:8], off, s[8:11], -1 offset:4095
// CHECK: [0xff,0x0f,0x84,0xe1,0x00,0x05,0x02,0xc1]
+buffer_atomic_cmpswap_x2 v[5:8], off, s[8:11], 0.5 offset:4095
+// CHECK: [0xff,0x0f,0x84,0xe1,0x00,0x05,0x02,0xf0]
+
+buffer_atomic_cmpswap_x2 v[5:8], off, s[8:11], -4.0 offset:4095
+// CHECK: [0xff,0x0f,0x84,0xe1,0x00,0x05,0x02,0xf7]
+
buffer_atomic_cmpswap_x2 v[5:8], v0, s[8:11], s3 idxen offset:4095
// CHECK: [0xff,0x2f,0x84,0xe1,0x00,0x05,0x02,0x03]
@@ -10258,6 +10351,12 @@ buffer_atomic_add_x2 v[5:6], off, s[8:11], 0 offset:4095
buffer_atomic_add_x2 v[5:6], off, s[8:11], -1 offset:4095
// CHECK: [0xff,0x0f,0x88,0xe1,0x00,0x05,0x02,0xc1]
+buffer_atomic_add_x2 v[5:6], off, s[8:11], 0.5 offset:4095
+// CHECK: [0xff,0x0f,0x88,0xe1,0x00,0x05,0x02,0xf0]
+
+buffer_atomic_add_x2 v[5:6], off, s[8:11], -4.0 offset:4095
+// CHECK: [0xff,0x0f,0x88,0xe1,0x00,0x05,0x02,0xf7]
+
buffer_atomic_add_x2 v[5:6], v0, s[8:11], s3 idxen offset:4095
// CHECK: [0xff,0x2f,0x88,0xe1,0x00,0x05,0x02,0x03]
@@ -10303,6 +10402,12 @@ buffer_atomic_sub_x2 v[5:6], off, s[8:11], 0 offset:4095
buffer_atomic_sub_x2 v[5:6], off, s[8:11], -1 offset:4095
// CHECK: [0xff,0x0f,0x8c,0xe1,0x00,0x05,0x02,0xc1]
+buffer_atomic_sub_x2 v[5:6], off, s[8:11], 0.5 offset:4095
+// CHECK: [0xff,0x0f,0x8c,0xe1,0x00,0x05,0x02,0xf0]
+
+buffer_atomic_sub_x2 v[5:6], off, s[8:11], -4.0 offset:4095
+// CHECK: [0xff,0x0f,0x8c,0xe1,0x00,0x05,0x02,0xf7]
+
buffer_atomic_sub_x2 v[5:6], v0, s[8:11], s3 idxen offset:4095
// CHECK: [0xff,0x2f,0x8c,0xe1,0x00,0x05,0x02,0x03]
@@ -10348,6 +10453,12 @@ buffer_atomic_smin_x2 v[5:6], off, s[8:11], 0 offset:4095
buffer_atomic_smin_x2 v[5:6], off, s[8:11], -1 offset:4095
// CHECK: [0xff,0x0f,0x90,0xe1,0x00,0x05,0x02,0xc1]
+buffer_atomic_smin_x2 v[5:6], off, s[8:11], 0.5 offset:4095
+// CHECK: [0xff,0x0f,0x90,0xe1,0x00,0x05,0x02,0xf0]
+
+buffer_atomic_smin_x2 v[5:6], off, s[8:11], -4.0 offset:4095
+// CHECK: [0xff,0x0f,0x90,0xe1,0x00,0x05,0x02,0xf7]
+
buffer_atomic_smin_x2 v[5:6], v0, s[8:11], s3 idxen offset:4095
// CHECK: [0xff,0x2f,0x90,0xe1,0x00,0x05,0x02,0x03]
@@ -10393,6 +10504,12 @@ buffer_atomic_umin_x2 v[5:6], off, s[8:11], 0 offset:4095
buffer_atomic_umin_x2 v[5:6], off, s[8:11], -1 offset:4095
// CHECK: [0xff,0x0f,0x94,0xe1,0x00,0x05,0x02,0xc1]
+buffer_atomic_umin_x2 v[5:6], off, s[8:11], 0.5 offset:4095
+// CHECK: [0xff,0x0f,0x94,0xe1,0x00,0x05,0x02,0xf0]
+
+buffer_atomic_umin_x2 v[5:6], off, s[8:11], -4.0 offset:4095
+// CHECK: [0xff,0x0f,0x94,0xe1,0x00,0x05,0x02,0xf7]
+
buffer_atomic_umin_x2 v[5:6], v0, s[8:11], s3 idxen offset:4095
// CHECK: [0xff,0x2f,0x94,0xe1,0x00,0x05,0x02,0x03]
@@ -10438,6 +10555,12 @@ buffer_atomic_smax_x2 v[5:6], off, s[8:11], 0 offset:4095
buffer_atomic_smax_x2 v[5:6], off, s[8:11], -1 offset:4095
// CHECK: [0xff,0x0f,0x98,0xe1,0x00,0x05,0x02,0xc1]
+buffer_atomic_smax_x2 v[5:6], off, s[8:11], 0.5 offset:4095
+// CHECK: [0xff,0x0f,0x98,0xe1,0x00,0x05,0x02,0xf0]
+
+buffer_atomic_smax_x2 v[5:6], off, s[8:11], -4.0 offset:4095
+// CHECK: [0xff,0x0f,0x98,0xe1,0x00,0x05,0x02,0xf7]
+
buffer_atomic_smax_x2 v[5:6], v0, s[8:11], s3 idxen offset:4095
// CHECK: [0xff,0x2f,0x98,0xe1,0x00,0x05,0x02,0x03]
@@ -10483,6 +10606,12 @@ buffer_atomic_umax_x2 v[5:6], off, s[8:11], 0 offset:4095
buffer_atomic_umax_x2 v[5:6], off, s[8:11], -1 offset:4095
// CHECK: [0xff,0x0f,0x9c,0xe1,0x00,0x05,0x02,0xc1]
+buffer_atomic_umax_x2 v[5:6], off, s[8:11], 0.5 offset:4095
+// CHECK: [0xff,0x0f,0x9c,0xe1,0x00,0x05,0x02,0xf0]
+
+buffer_atomic_umax_x2 v[5:6], off, s[8:11], -4.0 offset:4095
+// CHECK: [0xff,0x0f,0x9c,0xe1,0x00,0x05,0x02,0xf7]
+
buffer_atomic_umax_x2 v[5:6], v0, s[8:11], s3 idxen offset:4095
// CHECK: [0xff,0x2f,0x9c,0xe1,0x00,0x05,0x02,0x03]
@@ -10528,6 +10657,12 @@ buffer_atomic_and_x2 v[5:6], off, s[8:11], 0 offset:4095
buffer_atomic_and_x2 v[5:6], off, s[8:11], -1 offset:4095
// CHECK: [0xff,0x0f,0xa0,0xe1,0x00,0x05,0x02,0xc1]
+buffer_atomic_and_x2 v[5:6], off, s[8:11], 0.5 offset:4095
+// CHECK: [0xff,0x0f,0xa0,0xe1,0x00,0x05,0x02,0xf0]
+
+buffer_atomic_and_x2 v[5:6], off, s[8:11], -4.0 offset:4095
+// CHECK: [0xff,0x0f,0xa0,0xe1,0x00,0x05,0x02,0xf7]
+
buffer_atomic_and_x2 v[5:6], v0, s[8:11], s3 idxen offset:4095
// CHECK: [0xff,0x2f,0xa0,0xe1,0x00,0x05,0x02,0x03]
@@ -10573,6 +10708,12 @@ buffer_atomic_or_x2 v[5:6], off, s[8:11], 0 offset:4095
buffer_atomic_or_x2 v[5:6], off, s[8:11], -1 offset:4095
// CHECK: [0xff,0x0f,0xa4,0xe1,0x00,0x05,0x02,0xc1]
+buffer_atomic_or_x2 v[5:6], off, s[8:11], 0.5 offset:4095
+// CHECK: [0xff,0x0f,0xa4,0xe1,0x00,0x05,0x02,0xf0]
+
+buffer_atomic_or_x2 v[5:6], off, s[8:11], -4.0 offset:4095
+// CHECK: [0xff,0x0f,0xa4,0xe1,0x00,0x05,0x02,0xf7]
+
buffer_atomic_or_x2 v[5:6], v0, s[8:11], s3 idxen offset:4095
// CHECK: [0xff,0x2f,0xa4,0xe1,0x00,0x05,0x02,0x03]
@@ -10618,6 +10759,12 @@ buffer_atomic_xor_x2 v[5:6], off, s[8:11], 0 offset:4095
buffer_atomic_xor_x2 v[5:6], off, s[8:11], -1 offset:4095
// CHECK: [0xff,0x0f,0xa8,0xe1,0x00,0x05,0x02,0xc1]
+buffer_atomic_xor_x2 v[5:6], off, s[8:11], 0.5 offset:4095
+// CHECK: [0xff,0x0f,0xa8,0xe1,0x00,0x05,0x02,0xf0]
+
+buffer_atomic_xor_x2 v[5:6], off, s[8:11], -4.0 offset:4095
+// CHECK: [0xff,0x0f,0xa8,0xe1,0x00,0x05,0x02,0xf7]
+
buffer_atomic_xor_x2 v[5:6], v0, s[8:11], s3 idxen offset:4095
// CHECK: [0xff,0x2f,0xa8,0xe1,0x00,0x05,0x02,0x03]
@@ -10663,6 +10810,12 @@ buffer_atomic_inc_x2 v[5:6], off, s[8:11], 0 offset:4095
buffer_atomic_inc_x2 v[5:6], off, s[8:11], -1 offset:4095
// CHECK: [0xff,0x0f,0xac,0xe1,0x00,0x05,0x02,0xc1]
+buffer_atomic_inc_x2 v[5:6], off, s[8:11], 0.5 offset:4095
+// CHECK: [0xff,0x0f,0xac,0xe1,0x00,0x05,0x02,0xf0]
+
+buffer_atomic_inc_x2 v[5:6], off, s[8:11], -4.0 offset:4095
+// CHECK: [0xff,0x0f,0xac,0xe1,0x00,0x05,0x02,0xf7]
+
buffer_atomic_inc_x2 v[5:6], v0, s[8:11], s3 idxen offset:4095
// CHECK: [0xff,0x2f,0xac,0xe1,0x00,0x05,0x02,0x03]
@@ -10708,6 +10861,12 @@ buffer_atomic_dec_x2 v[5:6], off, s[8:11], 0 offset:4095
buffer_atomic_dec_x2 v[5:6], off, s[8:11], -1 offset:4095
// CHECK: [0xff,0x0f,0xb0,0xe1,0x00,0x05,0x02,0xc1]
+buffer_atomic_dec_x2 v[5:6], off, s[8:11], 0.5 offset:4095
+// CHECK: [0xff,0x0f,0xb0,0xe1,0x00,0x05,0x02,0xf0]
+
+buffer_atomic_dec_x2 v[5:6], off, s[8:11], -4.0 offset:4095
+// CHECK: [0xff,0x0f,0xb0,0xe1,0x00,0x05,0x02,0xf7]
+
buffer_atomic_dec_x2 v[5:6], v0, s[8:11], s3 idxen offset:4095
// CHECK: [0xff,0x2f,0xb0,0xe1,0x00,0x05,0x02,0x03]
@@ -50389,6 +50548,165 @@ v_pack_b32_f16 v5, v1, v2 op_sel:[0,0,1]
v_pack_b32_f16 v5, v1, v2 op_sel:[1,1,1]
// CHECK: [0x05,0x58,0xa0,0xd2,0x01,0x05,0x02,0x00]
+v_pk_mad_i16 v5, v1, v2, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0x05,0x0e,0x1c]
+
+v_pk_mad_i16 v255, v1, v2, v3
+// CHECK: [0xff,0x40,0x80,0xd3,0x01,0x05,0x0e,0x1c]
+
+v_pk_mad_i16 v5, v255, v2, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0xff,0x05,0x0e,0x1c]
+
+v_pk_mad_i16 v5, s1, v2, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0x04,0x0e,0x1c]
+
+v_pk_mad_i16 v5, s101, v2, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0x65,0x04,0x0e,0x1c]
+
+v_pk_mad_i16 v5, flat_scratch_lo, v2, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0x66,0x04,0x0e,0x1c]
+
+v_pk_mad_i16 v5, flat_scratch_hi, v2, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0x67,0x04,0x0e,0x1c]
+
+v_pk_mad_i16 v5, vcc_lo, v2, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0x6a,0x04,0x0e,0x1c]
+
+v_pk_mad_i16 v5, vcc_hi, v2, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0x6b,0x04,0x0e,0x1c]
+
+v_pk_mad_i16 v5, m0, v2, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0x7c,0x04,0x0e,0x1c]
+
+v_pk_mad_i16 v5, exec_lo, v2, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0x7e,0x04,0x0e,0x1c]
+
+v_pk_mad_i16 v5, exec_hi, v2, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0x7f,0x04,0x0e,0x1c]
+
+v_pk_mad_i16 v5, 0, v2, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0x80,0x04,0x0e,0x1c]
+
+v_pk_mad_i16 v5, -1, v2, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0xc1,0x04,0x0e,0x1c]
+
+v_pk_mad_i16 v5, 0.5, v2, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0xf0,0x04,0x0e,0x1c]
+
+v_pk_mad_i16 v5, -4.0, v2, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0xf7,0x04,0x0e,0x1c]
+
+v_pk_mad_i16 v5, v1, v255, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0xff,0x0f,0x1c]
+
+v_pk_mad_i16 v5, v1, s2, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0x05,0x0c,0x1c]
+
+v_pk_mad_i16 v5, v1, s101, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0xcb,0x0c,0x1c]
+
+v_pk_mad_i16 v5, v1, flat_scratch_lo, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0xcd,0x0c,0x1c]
+
+v_pk_mad_i16 v5, v1, flat_scratch_hi, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0xcf,0x0c,0x1c]
+
+v_pk_mad_i16 v5, v1, vcc_lo, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0xd5,0x0c,0x1c]
+
+v_pk_mad_i16 v5, v1, vcc_hi, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0xd7,0x0c,0x1c]
+
+v_pk_mad_i16 v5, v1, m0, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0xf9,0x0c,0x1c]
+
+v_pk_mad_i16 v5, v1, exec_lo, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0xfd,0x0c,0x1c]
+
+v_pk_mad_i16 v5, v1, exec_hi, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0xff,0x0c,0x1c]
+
+v_pk_mad_i16 v5, v1, 0, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0x01,0x0d,0x1c]
+
+v_pk_mad_i16 v5, v1, -1, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0x83,0x0d,0x1c]
+
+v_pk_mad_i16 v5, v1, 0.5, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0xe1,0x0d,0x1c]
+
+v_pk_mad_i16 v5, v1, -4.0, v3
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0xef,0x0d,0x1c]
+
+v_pk_mad_i16 v5, v1, v2, v255
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0x05,0xfe,0x1f]
+
+v_pk_mad_i16 v5, v1, v2, s3
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0x05,0x0e,0x18]
+
+v_pk_mad_i16 v5, v1, v2, s101
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0x05,0x96,0x19]
+
+v_pk_mad_i16 v5, v1, v2, flat_scratch_lo
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0x05,0x9a,0x19]
+
+v_pk_mad_i16 v5, v1, v2, flat_scratch_hi
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0x05,0x9e,0x19]
+
+v_pk_mad_i16 v5, v1, v2, vcc_lo
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0x05,0xaa,0x19]
+
+v_pk_mad_i16 v5, v1, v2, vcc_hi
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0x05,0xae,0x19]
+
+v_pk_mad_i16 v5, v1, v2, m0
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0x05,0xf2,0x19]
+
+v_pk_mad_i16 v5, v1, v2, exec_lo
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0x05,0xfa,0x19]
+
+v_pk_mad_i16 v5, v1, v2, exec_hi
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0x05,0xfe,0x19]
+
+v_pk_mad_i16 v5, v1, v2, 0
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0x05,0x02,0x1a]
+
+v_pk_mad_i16 v5, v1, v2, -1
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0x05,0x06,0x1b]
+
+v_pk_mad_i16 v5, v1, v2, 0.5
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0x05,0xc2,0x1b]
+
+v_pk_mad_i16 v5, v1, v2, -4.0
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0x05,0xde,0x1b]
+
+v_pk_mad_i16 v5, v1, v2, v3 op_sel:[1,0,0]
+// CHECK: [0x05,0x48,0x80,0xd3,0x01,0x05,0x0e,0x1c]
+
+v_pk_mad_i16 v5, v1, v2, v3 op_sel:[0,1,0]
+// CHECK: [0x05,0x50,0x80,0xd3,0x01,0x05,0x0e,0x1c]
+
+v_pk_mad_i16 v5, v1, v2, v3 op_sel:[0,0,1]
+// CHECK: [0x05,0x60,0x80,0xd3,0x01,0x05,0x0e,0x1c]
+
+v_pk_mad_i16 v5, v1, v2, v3 op_sel:[1,1,1]
+// CHECK: [0x05,0x78,0x80,0xd3,0x01,0x05,0x0e,0x1c]
+
+v_pk_mad_i16 v5, v1, v2, v3 op_sel_hi:[0,0,0]
+// CHECK: [0x05,0x00,0x80,0xd3,0x01,0x05,0x0e,0x04]
+
+v_pk_mad_i16 v5, v1, v2, v3 op_sel_hi:[1,0,0]
+// CHECK: [0x05,0x00,0x80,0xd3,0x01,0x05,0x0e,0x0c]
+
+v_pk_mad_i16 v5, v1, v2, v3 op_sel_hi:[0,1,0]
+// CHECK: [0x05,0x00,0x80,0xd3,0x01,0x05,0x0e,0x14]
+
+v_pk_mad_i16 v5, v1, v2, v3 op_sel_hi:[0,0,1]
+// CHECK: [0x05,0x40,0x80,0xd3,0x01,0x05,0x0e,0x04]
+
+v_pk_mad_i16 v5, v1, v2, v3 clamp
+// CHECK: [0x05,0xc0,0x80,0xd3,0x01,0x05,0x0e,0x1c]
+
v_pk_mul_lo_u16 v5, v1, v2
// CHECK: [0x05,0x00,0x81,0xd3,0x01,0x05,0x02,0x18]
@@ -50425,6 +50743,18 @@ v_pk_mul_lo_u16 v5, exec_lo, v2
v_pk_mul_lo_u16 v5, exec_hi, v2
// CHECK: [0x05,0x00,0x81,0xd3,0x7f,0x04,0x02,0x18]
+v_pk_mul_lo_u16 v5, 0, v2
+// CHECK: [0x05,0x00,0x81,0xd3,0x80,0x04,0x02,0x18]
+
+v_pk_mul_lo_u16 v5, -1, v2
+// CHECK: [0x05,0x00,0x81,0xd3,0xc1,0x04,0x02,0x18]
+
+v_pk_mul_lo_u16 v5, 0.5, v2
+// CHECK: [0x05,0x00,0x81,0xd3,0xf0,0x04,0x02,0x18]
+
+v_pk_mul_lo_u16 v5, -4.0, v2
+// CHECK: [0x05,0x00,0x81,0xd3,0xf7,0x04,0x02,0x18]
+
v_pk_mul_lo_u16 v5, v1, v255
// CHECK: [0x05,0x00,0x81,0xd3,0x01,0xff,0x03,0x18]
@@ -50458,6 +50788,18 @@ v_pk_mul_lo_u16 v5, v1, exec_hi
v_pk_mul_lo_u16 v5, v1, v2 op_sel:[0,0]
// CHECK: [0x05,0x00,0x81,0xd3,0x01,0x05,0x02,0x18]
+v_pk_mul_lo_u16 v5, v1, 0
+// CHECK: [0x05,0x00,0x81,0xd3,0x01,0x01,0x01,0x18]
+
+v_pk_mul_lo_u16 v5, v1, -1
+// CHECK: [0x05,0x00,0x81,0xd3,0x01,0x83,0x01,0x18]
+
+v_pk_mul_lo_u16 v5, v1, 0.5
+// CHECK: [0x05,0x00,0x81,0xd3,0x01,0xe1,0x01,0x18]
+
+v_pk_mul_lo_u16 v5, v1, -4.0
+// CHECK: [0x05,0x00,0x81,0xd3,0x01,0xef,0x01,0x18]
+
v_pk_mul_lo_u16 v5, v1, v2 op_sel:[1,0]
// CHECK: [0x05,0x08,0x81,0xd3,0x01,0x05,0x02,0x18]
@@ -50515,6 +50857,18 @@ v_pk_add_i16 v5, exec_lo, v2
v_pk_add_i16 v5, exec_hi, v2
// CHECK: [0x05,0x00,0x82,0xd3,0x7f,0x04,0x02,0x18]
+v_pk_add_i16 v5, 0, v2
+// CHECK: [0x05,0x00,0x82,0xd3,0x80,0x04,0x02,0x18]
+
+v_pk_add_i16 v5, -1, v2
+// CHECK: [0x05,0x00,0x82,0xd3,0xc1,0x04,0x02,0x18]
+
+v_pk_add_i16 v5, 0.5, v2
+// CHECK: [0x05,0x00,0x82,0xd3,0xf0,0x04,0x02,0x18]
+
+v_pk_add_i16 v5, -4.0, v2
+// CHECK: [0x05,0x00,0x82,0xd3,0xf7,0x04,0x02,0x18]
+
v_pk_add_i16 v5, v1, v255
// CHECK: [0x05,0x00,0x82,0xd3,0x01,0xff,0x03,0x18]
@@ -50548,6 +50902,18 @@ v_pk_add_i16 v5, v1, exec_hi
v_pk_add_i16 v5, v1, v2 op_sel:[0,0]
// CHECK: [0x05,0x00,0x82,0xd3,0x01,0x05,0x02,0x18]
+v_pk_add_i16 v5, v1, 0
+// CHECK: [0x05,0x00,0x82,0xd3,0x01,0x01,0x01,0x18]
+
+v_pk_add_i16 v5, v1, -1
+// CHECK: [0x05,0x00,0x82,0xd3,0x01,0x83,0x01,0x18]
+
+v_pk_add_i16 v5, v1, 0.5
+// CHECK: [0x05,0x00,0x82,0xd3,0x01,0xe1,0x01,0x18]
+
+v_pk_add_i16 v5, v1, -4.0
+// CHECK: [0x05,0x00,0x82,0xd3,0x01,0xef,0x01,0x18]
+
v_pk_add_i16 v5, v1, v2 op_sel:[1,0]
// CHECK: [0x05,0x08,0x82,0xd3,0x01,0x05,0x02,0x18]
@@ -50608,6 +50974,18 @@ v_pk_sub_i16 v5, exec_lo, v2
v_pk_sub_i16 v5, exec_hi, v2
// CHECK: [0x05,0x00,0x83,0xd3,0x7f,0x04,0x02,0x18]
+v_pk_sub_i16 v5, 0, v2
+// CHECK: [0x05,0x00,0x83,0xd3,0x80,0x04,0x02,0x18]
+
+v_pk_sub_i16 v5, -1, v2
+// CHECK: [0x05,0x00,0x83,0xd3,0xc1,0x04,0x02,0x18]
+
+v_pk_sub_i16 v5, 0.5, v2
+// CHECK: [0x05,0x00,0x83,0xd3,0xf0,0x04,0x02,0x18]
+
+v_pk_sub_i16 v5, -4.0, v2
+// CHECK: [0x05,0x00,0x83,0xd3,0xf7,0x04,0x02,0x18]
+
v_pk_sub_i16 v5, v1, v255
// CHECK: [0x05,0x00,0x83,0xd3,0x01,0xff,0x03,0x18]
@@ -50641,6 +51019,18 @@ v_pk_sub_i16 v5, v1, exec_hi
v_pk_sub_i16 v5, v1, v2 op_sel:[0,0]
// CHECK: [0x05,0x00,0x83,0xd3,0x01,0x05,0x02,0x18]
+v_pk_sub_i16 v5, v1, 0
+// CHECK: [0x05,0x00,0x83,0xd3,0x01,0x01,0x01,0x18]
+
+v_pk_sub_i16 v5, v1, -1
+// CHECK: [0x05,0x00,0x83,0xd3,0x01,0x83,0x01,0x18]
+
+v_pk_sub_i16 v5, v1, 0.5
+// CHECK: [0x05,0x00,0x83,0xd3,0x01,0xe1,0x01,0x18]
+
+v_pk_sub_i16 v5, v1, -4.0
+// CHECK: [0x05,0x00,0x83,0xd3,0x01,0xef,0x01,0x18]
+
v_pk_sub_i16 v5, v1, v2 op_sel:[1,0]
// CHECK: [0x05,0x08,0x83,0xd3,0x01,0x05,0x02,0x18]
@@ -50701,6 +51091,18 @@ v_pk_lshlrev_b16 v5, exec_lo, v2
v_pk_lshlrev_b16 v5, exec_hi, v2
// CHECK: [0x05,0x00,0x84,0xd3,0x7f,0x04,0x02,0x18]
+v_pk_lshlrev_b16 v5, 0, v2
+// CHECK: [0x05,0x00,0x84,0xd3,0x80,0x04,0x02,0x18]
+
+v_pk_lshlrev_b16 v5, -1, v2
+// CHECK: [0x05,0x00,0x84,0xd3,0xc1,0x04,0x02,0x18]
+
+v_pk_lshlrev_b16 v5, 0.5, v2
+// CHECK: [0x05,0x00,0x84,0xd3,0xf0,0x04,0x02,0x18]
+
+v_pk_lshlrev_b16 v5, -4.0, v2
+// CHECK: [0x05,0x00,0x84,0xd3,0xf7,0x04,0x02,0x18]
+
v_pk_lshlrev_b16 v5, v1, v255
// CHECK: [0x05,0x00,0x84,0xd3,0x01,0xff,0x03,0x18]
@@ -50734,6 +51136,18 @@ v_pk_lshlrev_b16 v5, v1, exec_hi
v_pk_lshlrev_b16 v5, v1, v2 op_sel:[0,0]
// CHECK: [0x05,0x00,0x84,0xd3,0x01,0x05,0x02,0x18]
+v_pk_lshlrev_b16 v5, v1, 0
+// CHECK: [0x05,0x00,0x84,0xd3,0x01,0x01,0x01,0x18]
+
+v_pk_lshlrev_b16 v5, v1, -1
+// CHECK: [0x05,0x00,0x84,0xd3,0x01,0x83,0x01,0x18]
+
+v_pk_lshlrev_b16 v5, v1, 0.5
+// CHECK: [0x05,0x00,0x84,0xd3,0x01,0xe1,0x01,0x18]
+
+v_pk_lshlrev_b16 v5, v1, -4.0
+// CHECK: [0x05,0x00,0x84,0xd3,0x01,0xef,0x01,0x18]
+
v_pk_lshlrev_b16 v5, v1, v2 op_sel:[1,0]
// CHECK: [0x05,0x08,0x84,0xd3,0x01,0x05,0x02,0x18]
@@ -50791,6 +51205,18 @@ v_pk_lshrrev_b16 v5, exec_lo, v2
v_pk_lshrrev_b16 v5, exec_hi, v2
// CHECK: [0x05,0x00,0x85,0xd3,0x7f,0x04,0x02,0x18]
+v_pk_lshrrev_b16 v5, 0, v2
+// CHECK: [0x05,0x00,0x85,0xd3,0x80,0x04,0x02,0x18]
+
+v_pk_lshrrev_b16 v5, -1, v2
+// CHECK: [0x05,0x00,0x85,0xd3,0xc1,0x04,0x02,0x18]
+
+v_pk_lshrrev_b16 v5, 0.5, v2
+// CHECK: [0x05,0x00,0x85,0xd3,0xf0,0x04,0x02,0x18]
+
+v_pk_lshrrev_b16 v5, -4.0, v2
+// CHECK: [0x05,0x00,0x85,0xd3,0xf7,0x04,0x02,0x18]
+
v_pk_lshrrev_b16 v5, v1, v255
// CHECK: [0x05,0x00,0x85,0xd3,0x01,0xff,0x03,0x18]
@@ -50824,6 +51250,18 @@ v_pk_lshrrev_b16 v5, v1, exec_hi
v_pk_lshrrev_b16 v5, v1, v2 op_sel:[0,0]
// CHECK: [0x05,0x00,0x85,0xd3,0x01,0x05,0x02,0x18]
+v_pk_lshrrev_b16 v5, v1, 0
+// CHECK: [0x05,0x00,0x85,0xd3,0x01,0x01,0x01,0x18]
+
+v_pk_lshrrev_b16 v5, v1, -1
+// CHECK: [0x05,0x00,0x85,0xd3,0x01,0x83,0x01,0x18]
+
+v_pk_lshrrev_b16 v5, v1, 0.5
+// CHECK: [0x05,0x00,0x85,0xd3,0x01,0xe1,0x01,0x18]
+
+v_pk_lshrrev_b16 v5, v1, -4.0
+// CHECK: [0x05,0x00,0x85,0xd3,0x01,0xef,0x01,0x18]
+
v_pk_lshrrev_b16 v5, v1, v2 op_sel:[1,0]
// CHECK: [0x05,0x08,0x85,0xd3,0x01,0x05,0x02,0x18]
@@ -50881,6 +51319,18 @@ v_pk_ashrrev_i16 v5, exec_lo, v2
v_pk_ashrrev_i16 v5, exec_hi, v2
// CHECK: [0x05,0x00,0x86,0xd3,0x7f,0x04,0x02,0x18]
+v_pk_ashrrev_i16 v5, 0, v2
+// CHECK: [0x05,0x00,0x86,0xd3,0x80,0x04,0x02,0x18]
+
+v_pk_ashrrev_i16 v5, -1, v2
+// CHECK: [0x05,0x00,0x86,0xd3,0xc1,0x04,0x02,0x18]
+
+v_pk_ashrrev_i16 v5, 0.5, v2
+// CHECK: [0x05,0x00,0x86,0xd3,0xf0,0x04,0x02,0x18]
+
+v_pk_ashrrev_i16 v5, -4.0, v2
+// CHECK: [0x05,0x00,0x86,0xd3,0xf7,0x04,0x02,0x18]
+
v_pk_ashrrev_i16 v5, v1, v255
// CHECK: [0x05,0x00,0x86,0xd3,0x01,0xff,0x03,0x18]
@@ -50914,6 +51364,18 @@ v_pk_ashrrev_i16 v5, v1, exec_hi
v_pk_ashrrev_i16 v5, v1, v2 op_sel:[0,0]
// CHECK: [0x05,0x00,0x86,0xd3,0x01,0x05,0x02,0x18]
+v_pk_ashrrev_i16 v5, v1, 0
+// CHECK: [0x05,0x00,0x86,0xd3,0x01,0x01,0x01,0x18]
+
+v_pk_ashrrev_i16 v5, v1, -1
+// CHECK: [0x05,0x00,0x86,0xd3,0x01,0x83,0x01,0x18]
+
+v_pk_ashrrev_i16 v5, v1, 0.5
+// CHECK: [0x05,0x00,0x86,0xd3,0x01,0xe1,0x01,0x18]
+
+v_pk_ashrrev_i16 v5, v1, -4.0
+// CHECK: [0x05,0x00,0x86,0xd3,0x01,0xef,0x01,0x18]
+
v_pk_ashrrev_i16 v5, v1, v2 op_sel:[1,0]
// CHECK: [0x05,0x08,0x86,0xd3,0x01,0x05,0x02,0x18]
@@ -50971,6 +51433,18 @@ v_pk_max_i16 v5, exec_lo, v2
v_pk_max_i16 v5, exec_hi, v2
// CHECK: [0x05,0x00,0x87,0xd3,0x7f,0x04,0x02,0x18]
+v_pk_max_i16 v5, 0, v2
+// CHECK: [0x05,0x00,0x87,0xd3,0x80,0x04,0x02,0x18]
+
+v_pk_max_i16 v5, -1, v2
+// CHECK: [0x05,0x00,0x87,0xd3,0xc1,0x04,0x02,0x18]
+
+v_pk_max_i16 v5, 0.5, v2
+// CHECK: [0x05,0x00,0x87,0xd3,0xf0,0x04,0x02,0x18]
+
+v_pk_max_i16 v5, -4.0, v2
+// CHECK: [0x05,0x00,0x87,0xd3,0xf7,0x04,0x02,0x18]
+
v_pk_max_i16 v5, v1, v255
// CHECK: [0x05,0x00,0x87,0xd3,0x01,0xff,0x03,0x18]
@@ -51004,6 +51478,18 @@ v_pk_max_i16 v5, v1, exec_hi
v_pk_max_i16 v5, v1, v2 op_sel:[0,0]
// CHECK: [0x05,0x00,0x87,0xd3,0x01,0x05,0x02,0x18]
+v_pk_max_i16 v5, v1, 0
+// CHECK: [0x05,0x00,0x87,0xd3,0x01,0x01,0x01,0x18]
+
+v_pk_max_i16 v5, v1, -1
+// CHECK: [0x05,0x00,0x87,0xd3,0x01,0x83,0x01,0x18]
+
+v_pk_max_i16 v5, v1, 0.5
+// CHECK: [0x05,0x00,0x87,0xd3,0x01,0xe1,0x01,0x18]
+
+v_pk_max_i16 v5, v1, -4.0
+// CHECK: [0x05,0x00,0x87,0xd3,0x01,0xef,0x01,0x18]
+
v_pk_max_i16 v5, v1, v2 op_sel:[1,0]
// CHECK: [0x05,0x08,0x87,0xd3,0x01,0x05,0x02,0x18]
@@ -51061,6 +51547,18 @@ v_pk_min_i16 v5, exec_lo, v2
v_pk_min_i16 v5, exec_hi, v2
// CHECK: [0x05,0x00,0x88,0xd3,0x7f,0x04,0x02,0x18]
+v_pk_min_i16 v5, 0, v2
+// CHECK: [0x05,0x00,0x88,0xd3,0x80,0x04,0x02,0x18]
+
+v_pk_min_i16 v5, -1, v2
+// CHECK: [0x05,0x00,0x88,0xd3,0xc1,0x04,0x02,0x18]
+
+v_pk_min_i16 v5, 0.5, v2
+// CHECK: [0x05,0x00,0x88,0xd3,0xf0,0x04,0x02,0x18]
+
+v_pk_min_i16 v5, -4.0, v2
+// CHECK: [0x05,0x00,0x88,0xd3,0xf7,0x04,0x02,0x18]
+
v_pk_min_i16 v5, v1, v255
// CHECK: [0x05,0x00,0x88,0xd3,0x01,0xff,0x03,0x18]
@@ -51094,6 +51592,18 @@ v_pk_min_i16 v5, v1, exec_hi
v_pk_min_i16 v5, v1, v2 op_sel:[0,0]
// CHECK: [0x05,0x00,0x88,0xd3,0x01,0x05,0x02,0x18]
+v_pk_min_i16 v5, v1, 0
+// CHECK: [0x05,0x00,0x88,0xd3,0x01,0x01,0x01,0x18]
+
+v_pk_min_i16 v5, v1, -1
+// CHECK: [0x05,0x00,0x88,0xd3,0x01,0x83,0x01,0x18]
+
+v_pk_min_i16 v5, v1, 0.5
+// CHECK: [0x05,0x00,0x88,0xd3,0x01,0xe1,0x01,0x18]
+
+v_pk_min_i16 v5, v1, -4.0
+// CHECK: [0x05,0x00,0x88,0xd3,0x01,0xef,0x01,0x18]
+
v_pk_min_i16 v5, v1, v2 op_sel:[1,0]
// CHECK: [0x05,0x08,0x88,0xd3,0x01,0x05,0x02,0x18]
@@ -51115,6 +51625,165 @@ v_pk_min_i16 v5, v1, v2 op_sel_hi:[1,0]
v_pk_min_i16 v5, v1, v2 op_sel_hi:[0,1]
// CHECK: [0x05,0x00,0x88,0xd3,0x01,0x05,0x02,0x10]
+v_pk_mad_u16 v5, v1, v2, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0x05,0x0e,0x1c]
+
+v_pk_mad_u16 v255, v1, v2, v3
+// CHECK: [0xff,0x40,0x89,0xd3,0x01,0x05,0x0e,0x1c]
+
+v_pk_mad_u16 v5, v255, v2, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0xff,0x05,0x0e,0x1c]
+
+v_pk_mad_u16 v5, s1, v2, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0x04,0x0e,0x1c]
+
+v_pk_mad_u16 v5, s101, v2, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0x65,0x04,0x0e,0x1c]
+
+v_pk_mad_u16 v5, flat_scratch_lo, v2, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0x66,0x04,0x0e,0x1c]
+
+v_pk_mad_u16 v5, flat_scratch_hi, v2, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0x67,0x04,0x0e,0x1c]
+
+v_pk_mad_u16 v5, vcc_lo, v2, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0x6a,0x04,0x0e,0x1c]
+
+v_pk_mad_u16 v5, vcc_hi, v2, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0x6b,0x04,0x0e,0x1c]
+
+v_pk_mad_u16 v5, m0, v2, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0x7c,0x04,0x0e,0x1c]
+
+v_pk_mad_u16 v5, exec_lo, v2, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0x7e,0x04,0x0e,0x1c]
+
+v_pk_mad_u16 v5, exec_hi, v2, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0x7f,0x04,0x0e,0x1c]
+
+v_pk_mad_u16 v5, 0, v2, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0x80,0x04,0x0e,0x1c]
+
+v_pk_mad_u16 v5, -1, v2, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0xc1,0x04,0x0e,0x1c]
+
+v_pk_mad_u16 v5, 0.5, v2, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0xf0,0x04,0x0e,0x1c]
+
+v_pk_mad_u16 v5, -4.0, v2, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0xf7,0x04,0x0e,0x1c]
+
+v_pk_mad_u16 v5, v1, v255, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0xff,0x0f,0x1c]
+
+v_pk_mad_u16 v5, v1, s2, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0x05,0x0c,0x1c]
+
+v_pk_mad_u16 v5, v1, s101, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0xcb,0x0c,0x1c]
+
+v_pk_mad_u16 v5, v1, flat_scratch_lo, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0xcd,0x0c,0x1c]
+
+v_pk_mad_u16 v5, v1, flat_scratch_hi, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0xcf,0x0c,0x1c]
+
+v_pk_mad_u16 v5, v1, vcc_lo, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0xd5,0x0c,0x1c]
+
+v_pk_mad_u16 v5, v1, vcc_hi, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0xd7,0x0c,0x1c]
+
+v_pk_mad_u16 v5, v1, m0, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0xf9,0x0c,0x1c]
+
+v_pk_mad_u16 v5, v1, exec_lo, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0xfd,0x0c,0x1c]
+
+v_pk_mad_u16 v5, v1, exec_hi, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0xff,0x0c,0x1c]
+
+v_pk_mad_u16 v5, v1, 0, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0x01,0x0d,0x1c]
+
+v_pk_mad_u16 v5, v1, -1, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0x83,0x0d,0x1c]
+
+v_pk_mad_u16 v5, v1, 0.5, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0xe1,0x0d,0x1c]
+
+v_pk_mad_u16 v5, v1, -4.0, v3
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0xef,0x0d,0x1c]
+
+v_pk_mad_u16 v5, v1, v2, v255
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0x05,0xfe,0x1f]
+
+v_pk_mad_u16 v5, v1, v2, s3
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0x05,0x0e,0x18]
+
+v_pk_mad_u16 v5, v1, v2, s101
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0x05,0x96,0x19]
+
+v_pk_mad_u16 v5, v1, v2, flat_scratch_lo
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0x05,0x9a,0x19]
+
+v_pk_mad_u16 v5, v1, v2, flat_scratch_hi
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0x05,0x9e,0x19]
+
+v_pk_mad_u16 v5, v1, v2, vcc_lo
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0x05,0xaa,0x19]
+
+v_pk_mad_u16 v5, v1, v2, vcc_hi
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0x05,0xae,0x19]
+
+v_pk_mad_u16 v5, v1, v2, m0
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0x05,0xf2,0x19]
+
+v_pk_mad_u16 v5, v1, v2, exec_lo
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0x05,0xfa,0x19]
+
+v_pk_mad_u16 v5, v1, v2, exec_hi
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0x05,0xfe,0x19]
+
+v_pk_mad_u16 v5, v1, v2, 0
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0x05,0x02,0x1a]
+
+v_pk_mad_u16 v5, v1, v2, -1
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0x05,0x06,0x1b]
+
+v_pk_mad_u16 v5, v1, v2, 0.5
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0x05,0xc2,0x1b]
+
+v_pk_mad_u16 v5, v1, v2, -4.0
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0x05,0xde,0x1b]
+
+v_pk_mad_u16 v5, v1, v2, v3 op_sel:[1,0,0]
+// CHECK: [0x05,0x48,0x89,0xd3,0x01,0x05,0x0e,0x1c]
+
+v_pk_mad_u16 v5, v1, v2, v3 op_sel:[0,1,0]
+// CHECK: [0x05,0x50,0x89,0xd3,0x01,0x05,0x0e,0x1c]
+
+v_pk_mad_u16 v5, v1, v2, v3 op_sel:[0,0,1]
+// CHECK: [0x05,0x60,0x89,0xd3,0x01,0x05,0x0e,0x1c]
+
+v_pk_mad_u16 v5, v1, v2, v3 op_sel:[1,1,1]
+// CHECK: [0x05,0x78,0x89,0xd3,0x01,0x05,0x0e,0x1c]
+
+v_pk_mad_u16 v5, v1, v2, v3 op_sel_hi:[0,0,0]
+// CHECK: [0x05,0x00,0x89,0xd3,0x01,0x05,0x0e,0x04]
+
+v_pk_mad_u16 v5, v1, v2, v3 op_sel_hi:[1,0,0]
+// CHECK: [0x05,0x00,0x89,0xd3,0x01,0x05,0x0e,0x0c]
+
+v_pk_mad_u16 v5, v1, v2, v3 op_sel_hi:[0,1,0]
+// CHECK: [0x05,0x00,0x89,0xd3,0x01,0x05,0x0e,0x14]
+
+v_pk_mad_u16 v5, v1, v2, v3 op_sel_hi:[0,0,1]
+// CHECK: [0x05,0x40,0x89,0xd3,0x01,0x05,0x0e,0x04]
+
+v_pk_mad_u16 v5, v1, v2, v3 clamp
+// CHECK: [0x05,0xc0,0x89,0xd3,0x01,0x05,0x0e,0x1c]
+
v_pk_add_u16 v5, v1, v2
// CHECK: [0x05,0x00,0x8a,0xd3,0x01,0x05,0x02,0x18]
@@ -51151,6 +51820,18 @@ v_pk_add_u16 v5, exec_lo, v2
v_pk_add_u16 v5, exec_hi, v2
// CHECK: [0x05,0x00,0x8a,0xd3,0x7f,0x04,0x02,0x18]
+v_pk_add_u16 v5, 0, v2
+// CHECK: [0x05,0x00,0x8a,0xd3,0x80,0x04,0x02,0x18]
+
+v_pk_add_u16 v5, -1, v2
+// CHECK: [0x05,0x00,0x8a,0xd3,0xc1,0x04,0x02,0x18]
+
+v_pk_add_u16 v5, 0.5, v2
+// CHECK: [0x05,0x00,0x8a,0xd3,0xf0,0x04,0x02,0x18]
+
+v_pk_add_u16 v5, -4.0, v2
+// CHECK: [0x05,0x00,0x8a,0xd3,0xf7,0x04,0x02,0x18]
+
v_pk_add_u16 v5, v1, v255
// CHECK: [0x05,0x00,0x8a,0xd3,0x01,0xff,0x03,0x18]
@@ -51184,6 +51865,18 @@ v_pk_add_u16 v5, v1, exec_hi
v_pk_add_u16 v5, v1, v2 op_sel:[0,0]
// CHECK: [0x05,0x00,0x8a,0xd3,0x01,0x05,0x02,0x18]
+v_pk_add_u16 v5, v1, 0
+// CHECK: [0x05,0x00,0x8a,0xd3,0x01,0x01,0x01,0x18]
+
+v_pk_add_u16 v5, v1, -1
+// CHECK: [0x05,0x00,0x8a,0xd3,0x01,0x83,0x01,0x18]
+
+v_pk_add_u16 v5, v1, 0.5
+// CHECK: [0x05,0x00,0x8a,0xd3,0x01,0xe1,0x01,0x18]
+
+v_pk_add_u16 v5, v1, -4.0
+// CHECK: [0x05,0x00,0x8a,0xd3,0x01,0xef,0x01,0x18]
+
v_pk_add_u16 v5, v1, v2 op_sel:[1,0]
// CHECK: [0x05,0x08,0x8a,0xd3,0x01,0x05,0x02,0x18]
@@ -51244,6 +51937,18 @@ v_pk_sub_u16 v5, exec_lo, v2
v_pk_sub_u16 v5, exec_hi, v2
// CHECK: [0x05,0x00,0x8b,0xd3,0x7f,0x04,0x02,0x18]
+v_pk_sub_u16 v5, 0, v2
+// CHECK: [0x05,0x00,0x8b,0xd3,0x80,0x04,0x02,0x18]
+
+v_pk_sub_u16 v5, -1, v2
+// CHECK: [0x05,0x00,0x8b,0xd3,0xc1,0x04,0x02,0x18]
+
+v_pk_sub_u16 v5, 0.5, v2
+// CHECK: [0x05,0x00,0x8b,0xd3,0xf0,0x04,0x02,0x18]
+
+v_pk_sub_u16 v5, -4.0, v2
+// CHECK: [0x05,0x00,0x8b,0xd3,0xf7,0x04,0x02,0x18]
+
v_pk_sub_u16 v5, v1, v255
// CHECK: [0x05,0x00,0x8b,0xd3,0x01,0xff,0x03,0x18]
@@ -51277,6 +51982,18 @@ v_pk_sub_u16 v5, v1, exec_hi
v_pk_sub_u16 v5, v1, v2 op_sel:[0,0]
// CHECK: [0x05,0x00,0x8b,0xd3,0x01,0x05,0x02,0x18]
+v_pk_sub_u16 v5, v1, 0
+// CHECK: [0x05,0x00,0x8b,0xd3,0x01,0x01,0x01,0x18]
+
+v_pk_sub_u16 v5, v1, -1
+// CHECK: [0x05,0x00,0x8b,0xd3,0x01,0x83,0x01,0x18]
+
+v_pk_sub_u16 v5, v1, 0.5
+// CHECK: [0x05,0x00,0x8b,0xd3,0x01,0xe1,0x01,0x18]
+
+v_pk_sub_u16 v5, v1, -4.0
+// CHECK: [0x05,0x00,0x8b,0xd3,0x01,0xef,0x01,0x18]
+
v_pk_sub_u16 v5, v1, v2 op_sel:[1,0]
// CHECK: [0x05,0x08,0x8b,0xd3,0x01,0x05,0x02,0x18]
@@ -51337,6 +52054,18 @@ v_pk_max_u16 v5, exec_lo, v2
v_pk_max_u16 v5, exec_hi, v2
// CHECK: [0x05,0x00,0x8c,0xd3,0x7f,0x04,0x02,0x18]
+v_pk_max_u16 v5, 0, v2
+// CHECK: [0x05,0x00,0x8c,0xd3,0x80,0x04,0x02,0x18]
+
+v_pk_max_u16 v5, -1, v2
+// CHECK: [0x05,0x00,0x8c,0xd3,0xc1,0x04,0x02,0x18]
+
+v_pk_max_u16 v5, 0.5, v2
+// CHECK: [0x05,0x00,0x8c,0xd3,0xf0,0x04,0x02,0x18]
+
+v_pk_max_u16 v5, -4.0, v2
+// CHECK: [0x05,0x00,0x8c,0xd3,0xf7,0x04,0x02,0x18]
+
v_pk_max_u16 v5, v1, v255
// CHECK: [0x05,0x00,0x8c,0xd3,0x01,0xff,0x03,0x18]
@@ -51370,6 +52099,18 @@ v_pk_max_u16 v5, v1, exec_hi
v_pk_max_u16 v5, v1, v2 op_sel:[0,0]
// CHECK: [0x05,0x00,0x8c,0xd3,0x01,0x05,0x02,0x18]
+v_pk_max_u16 v5, v1, 0
+// CHECK: [0x05,0x00,0x8c,0xd3,0x01,0x01,0x01,0x18]
+
+v_pk_max_u16 v5, v1, -1
+// CHECK: [0x05,0x00,0x8c,0xd3,0x01,0x83,0x01,0x18]
+
+v_pk_max_u16 v5, v1, 0.5
+// CHECK: [0x05,0x00,0x8c,0xd3,0x01,0xe1,0x01,0x18]
+
+v_pk_max_u16 v5, v1, -4.0
+// CHECK: [0x05,0x00,0x8c,0xd3,0x01,0xef,0x01,0x18]
+
v_pk_max_u16 v5, v1, v2 op_sel:[1,0]
// CHECK: [0x05,0x08,0x8c,0xd3,0x01,0x05,0x02,0x18]
@@ -51427,6 +52168,18 @@ v_pk_min_u16 v5, exec_lo, v2
v_pk_min_u16 v5, exec_hi, v2
// CHECK: [0x05,0x00,0x8d,0xd3,0x7f,0x04,0x02,0x18]
+v_pk_min_u16 v5, 0, v2
+// CHECK: [0x05,0x00,0x8d,0xd3,0x80,0x04,0x02,0x18]
+
+v_pk_min_u16 v5, -1, v2
+// CHECK: [0x05,0x00,0x8d,0xd3,0xc1,0x04,0x02,0x18]
+
+v_pk_min_u16 v5, 0.5, v2
+// CHECK: [0x05,0x00,0x8d,0xd3,0xf0,0x04,0x02,0x18]
+
+v_pk_min_u16 v5, -4.0, v2
+// CHECK: [0x05,0x00,0x8d,0xd3,0xf7,0x04,0x02,0x18]
+
v_pk_min_u16 v5, v1, v255
// CHECK: [0x05,0x00,0x8d,0xd3,0x01,0xff,0x03,0x18]
@@ -51460,6 +52213,18 @@ v_pk_min_u16 v5, v1, exec_hi
v_pk_min_u16 v5, v1, v2 op_sel:[0,0]
// CHECK: [0x05,0x00,0x8d,0xd3,0x01,0x05,0x02,0x18]
+v_pk_min_u16 v5, v1, 0
+// CHECK: [0x05,0x00,0x8d,0xd3,0x01,0x01,0x01,0x18]
+
+v_pk_min_u16 v5, v1, -1
+// CHECK: [0x05,0x00,0x8d,0xd3,0x01,0x83,0x01,0x18]
+
+v_pk_min_u16 v5, v1, 0.5
+// CHECK: [0x05,0x00,0x8d,0xd3,0x01,0xe1,0x01,0x18]
+
+v_pk_min_u16 v5, v1, -4.0
+// CHECK: [0x05,0x00,0x8d,0xd3,0x01,0xef,0x01,0x18]
+
v_pk_min_u16 v5, v1, v2 op_sel:[1,0]
// CHECK: [0x05,0x08,0x8d,0xd3,0x01,0x05,0x02,0x18]
@@ -51481,6 +52246,189 @@ v_pk_min_u16 v5, v1, v2 op_sel_hi:[1,0]
v_pk_min_u16 v5, v1, v2 op_sel_hi:[0,1]
// CHECK: [0x05,0x00,0x8d,0xd3,0x01,0x05,0x02,0x10]
+v_pk_fma_f16 v5, v1, v2, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0x05,0x0e,0x1c]
+
+v_pk_fma_f16 v255, v1, v2, v3
+// CHECK: [0xff,0x40,0x8e,0xd3,0x01,0x05,0x0e,0x1c]
+
+v_pk_fma_f16 v5, v255, v2, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0xff,0x05,0x0e,0x1c]
+
+v_pk_fma_f16 v5, s1, v2, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0x04,0x0e,0x1c]
+
+v_pk_fma_f16 v5, s101, v2, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0x65,0x04,0x0e,0x1c]
+
+v_pk_fma_f16 v5, flat_scratch_lo, v2, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0x66,0x04,0x0e,0x1c]
+
+v_pk_fma_f16 v5, flat_scratch_hi, v2, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0x67,0x04,0x0e,0x1c]
+
+v_pk_fma_f16 v5, vcc_lo, v2, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0x6a,0x04,0x0e,0x1c]
+
+v_pk_fma_f16 v5, vcc_hi, v2, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0x6b,0x04,0x0e,0x1c]
+
+v_pk_fma_f16 v5, m0, v2, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0x7c,0x04,0x0e,0x1c]
+
+v_pk_fma_f16 v5, exec_lo, v2, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0x7e,0x04,0x0e,0x1c]
+
+v_pk_fma_f16 v5, exec_hi, v2, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0x7f,0x04,0x0e,0x1c]
+
+v_pk_fma_f16 v5, 0, v2, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0x80,0x04,0x0e,0x1c]
+
+v_pk_fma_f16 v5, -1, v2, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0xc1,0x04,0x0e,0x1c]
+
+v_pk_fma_f16 v5, 0.5, v2, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0xf0,0x04,0x0e,0x1c]
+
+v_pk_fma_f16 v5, -4.0, v2, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0xf7,0x04,0x0e,0x1c]
+
+v_pk_fma_f16 v5, v1, v255, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0xff,0x0f,0x1c]
+
+v_pk_fma_f16 v5, v1, s2, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0x05,0x0c,0x1c]
+
+v_pk_fma_f16 v5, v1, s101, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0xcb,0x0c,0x1c]
+
+v_pk_fma_f16 v5, v1, flat_scratch_lo, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0xcd,0x0c,0x1c]
+
+v_pk_fma_f16 v5, v1, flat_scratch_hi, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0xcf,0x0c,0x1c]
+
+v_pk_fma_f16 v5, v1, vcc_lo, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0xd5,0x0c,0x1c]
+
+v_pk_fma_f16 v5, v1, vcc_hi, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0xd7,0x0c,0x1c]
+
+v_pk_fma_f16 v5, v1, m0, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0xf9,0x0c,0x1c]
+
+v_pk_fma_f16 v5, v1, exec_lo, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0xfd,0x0c,0x1c]
+
+v_pk_fma_f16 v5, v1, exec_hi, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0xff,0x0c,0x1c]
+
+v_pk_fma_f16 v5, v1, 0, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0x01,0x0d,0x1c]
+
+v_pk_fma_f16 v5, v1, -1, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0x83,0x0d,0x1c]
+
+v_pk_fma_f16 v5, v1, 0.5, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0xe1,0x0d,0x1c]
+
+v_pk_fma_f16 v5, v1, -4.0, v3
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0xef,0x0d,0x1c]
+
+v_pk_fma_f16 v5, v1, v2, v255
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0x05,0xfe,0x1f]
+
+v_pk_fma_f16 v5, v1, v2, s3
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0x05,0x0e,0x18]
+
+v_pk_fma_f16 v5, v1, v2, s101
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0x05,0x96,0x19]
+
+v_pk_fma_f16 v5, v1, v2, flat_scratch_lo
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0x05,0x9a,0x19]
+
+v_pk_fma_f16 v5, v1, v2, flat_scratch_hi
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0x05,0x9e,0x19]
+
+v_pk_fma_f16 v5, v1, v2, vcc_lo
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0x05,0xaa,0x19]
+
+v_pk_fma_f16 v5, v1, v2, vcc_hi
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0x05,0xae,0x19]
+
+v_pk_fma_f16 v5, v1, v2, m0
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0x05,0xf2,0x19]
+
+v_pk_fma_f16 v5, v1, v2, exec_lo
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0x05,0xfa,0x19]
+
+v_pk_fma_f16 v5, v1, v2, exec_hi
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0x05,0xfe,0x19]
+
+v_pk_fma_f16 v5, v1, v2, 0
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0x05,0x02,0x1a]
+
+v_pk_fma_f16 v5, v1, v2, -1
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0x05,0x06,0x1b]
+
+v_pk_fma_f16 v5, v1, v2, 0.5
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0x05,0xc2,0x1b]
+
+v_pk_fma_f16 v5, v1, v2, -4.0
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0x05,0xde,0x1b]
+
+v_pk_fma_f16 v5, v1, v2, v3 op_sel:[1,0,0]
+// CHECK: [0x05,0x48,0x8e,0xd3,0x01,0x05,0x0e,0x1c]
+
+v_pk_fma_f16 v5, v1, v2, v3 op_sel:[0,1,0]
+// CHECK: [0x05,0x50,0x8e,0xd3,0x01,0x05,0x0e,0x1c]
+
+v_pk_fma_f16 v5, v1, v2, v3 op_sel:[0,0,1]
+// CHECK: [0x05,0x60,0x8e,0xd3,0x01,0x05,0x0e,0x1c]
+
+v_pk_fma_f16 v5, v1, v2, v3 op_sel:[1,1,1]
+// CHECK: [0x05,0x78,0x8e,0xd3,0x01,0x05,0x0e,0x1c]
+
+v_pk_fma_f16 v5, v1, v2, v3 op_sel_hi:[0,0,0]
+// CHECK: [0x05,0x00,0x8e,0xd3,0x01,0x05,0x0e,0x04]
+
+v_pk_fma_f16 v5, v1, v2, v3 op_sel_hi:[1,0,0]
+// CHECK: [0x05,0x00,0x8e,0xd3,0x01,0x05,0x0e,0x0c]
+
+v_pk_fma_f16 v5, v1, v2, v3 op_sel_hi:[0,1,0]
+// CHECK: [0x05,0x00,0x8e,0xd3,0x01,0x05,0x0e,0x14]
+
+v_pk_fma_f16 v5, v1, v2, v3 op_sel_hi:[0,0,1]
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0x05,0x0e,0x04]
+
+v_pk_fma_f16 v5, v1, v2, v3 neg_lo:[1,0,0]
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0x05,0x0e,0x3c]
+
+v_pk_fma_f16 v5, v1, v2, v3 neg_lo:[0,1,0]
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0x05,0x0e,0x5c]
+
+v_pk_fma_f16 v5, v1, v2, v3 neg_lo:[0,0,1]
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0x05,0x0e,0x9c]
+
+v_pk_fma_f16 v5, v1, v2, v3 neg_lo:[1,1,1]
+// CHECK: [0x05,0x40,0x8e,0xd3,0x01,0x05,0x0e,0xfc]
+
+v_pk_fma_f16 v5, v1, v2, v3 neg_hi:[1,0,0]
+// CHECK: [0x05,0x41,0x8e,0xd3,0x01,0x05,0x0e,0x1c]
+
+v_pk_fma_f16 v5, v1, v2, v3 neg_hi:[0,1,0]
+// CHECK: [0x05,0x42,0x8e,0xd3,0x01,0x05,0x0e,0x1c]
+
+v_pk_fma_f16 v5, v1, v2, v3 neg_hi:[0,0,1]
+// CHECK: [0x05,0x44,0x8e,0xd3,0x01,0x05,0x0e,0x1c]
+
+v_pk_fma_f16 v5, v1, v2, v3 neg_hi:[1,1,1]
+// CHECK: [0x05,0x47,0x8e,0xd3,0x01,0x05,0x0e,0x1c]
+
+v_pk_fma_f16 v5, v1, v2, v3 clamp
+// CHECK: [0x05,0xc0,0x8e,0xd3,0x01,0x05,0x0e,0x1c]
+
v_pk_add_f16 v5, v1, v2
// CHECK: [0x05,0x00,0x8f,0xd3,0x01,0x05,0x02,0x18]
@@ -51517,6 +52465,18 @@ v_pk_add_f16 v5, exec_lo, v2
v_pk_add_f16 v5, exec_hi, v2
// CHECK: [0x05,0x00,0x8f,0xd3,0x7f,0x04,0x02,0x18]
+v_pk_add_f16 v5, 0, v2
+// CHECK: [0x05,0x00,0x8f,0xd3,0x80,0x04,0x02,0x18]
+
+v_pk_add_f16 v5, -1, v2
+// CHECK: [0x05,0x00,0x8f,0xd3,0xc1,0x04,0x02,0x18]
+
+v_pk_add_f16 v5, 0.5, v2
+// CHECK: [0x05,0x00,0x8f,0xd3,0xf0,0x04,0x02,0x18]
+
+v_pk_add_f16 v5, -4.0, v2
+// CHECK: [0x05,0x00,0x8f,0xd3,0xf7,0x04,0x02,0x18]
+
v_pk_add_f16 v5, v1, v255
// CHECK: [0x05,0x00,0x8f,0xd3,0x01,0xff,0x03,0x18]
@@ -51550,6 +52510,18 @@ v_pk_add_f16 v5, v1, exec_hi
v_pk_add_f16 v5, v1, v2 op_sel:[0,0]
// CHECK: [0x05,0x00,0x8f,0xd3,0x01,0x05,0x02,0x18]
+v_pk_add_f16 v5, v1, 0
+// CHECK: [0x05,0x00,0x8f,0xd3,0x01,0x01,0x01,0x18]
+
+v_pk_add_f16 v5, v1, -1
+// CHECK: [0x05,0x00,0x8f,0xd3,0x01,0x83,0x01,0x18]
+
+v_pk_add_f16 v5, v1, 0.5
+// CHECK: [0x05,0x00,0x8f,0xd3,0x01,0xe1,0x01,0x18]
+
+v_pk_add_f16 v5, v1, -4.0
+// CHECK: [0x05,0x00,0x8f,0xd3,0x01,0xef,0x01,0x18]
+
v_pk_add_f16 v5, v1, v2 op_sel:[1,0]
// CHECK: [0x05,0x08,0x8f,0xd3,0x01,0x05,0x02,0x18]
@@ -51628,6 +52600,18 @@ v_pk_mul_f16 v5, exec_lo, v2
v_pk_mul_f16 v5, exec_hi, v2
// CHECK: [0x05,0x00,0x90,0xd3,0x7f,0x04,0x02,0x18]
+v_pk_mul_f16 v5, 0, v2
+// CHECK: [0x05,0x00,0x90,0xd3,0x80,0x04,0x02,0x18]
+
+v_pk_mul_f16 v5, -1, v2
+// CHECK: [0x05,0x00,0x90,0xd3,0xc1,0x04,0x02,0x18]
+
+v_pk_mul_f16 v5, 0.5, v2
+// CHECK: [0x05,0x00,0x90,0xd3,0xf0,0x04,0x02,0x18]
+
+v_pk_mul_f16 v5, -4.0, v2
+// CHECK: [0x05,0x00,0x90,0xd3,0xf7,0x04,0x02,0x18]
+
v_pk_mul_f16 v5, v1, v255
// CHECK: [0x05,0x00,0x90,0xd3,0x01,0xff,0x03,0x18]
@@ -51661,6 +52645,18 @@ v_pk_mul_f16 v5, v1, exec_hi
v_pk_mul_f16 v5, v1, v2 op_sel:[0,0]
// CHECK: [0x05,0x00,0x90,0xd3,0x01,0x05,0x02,0x18]
+v_pk_mul_f16 v5, v1, 0
+// CHECK: [0x05,0x00,0x90,0xd3,0x01,0x01,0x01,0x18]
+
+v_pk_mul_f16 v5, v1, -1
+// CHECK: [0x05,0x00,0x90,0xd3,0x01,0x83,0x01,0x18]
+
+v_pk_mul_f16 v5, v1, 0.5
+// CHECK: [0x05,0x00,0x90,0xd3,0x01,0xe1,0x01,0x18]
+
+v_pk_mul_f16 v5, v1, -4.0
+// CHECK: [0x05,0x00,0x90,0xd3,0x01,0xef,0x01,0x18]
+
v_pk_mul_f16 v5, v1, v2 op_sel:[1,0]
// CHECK: [0x05,0x08,0x90,0xd3,0x01,0x05,0x02,0x18]
@@ -51739,6 +52735,18 @@ v_pk_min_f16 v5, exec_lo, v2
v_pk_min_f16 v5, exec_hi, v2
// CHECK: [0x05,0x00,0x91,0xd3,0x7f,0x04,0x02,0x18]
+v_pk_min_f16 v5, 0, v2
+// CHECK: [0x05,0x00,0x91,0xd3,0x80,0x04,0x02,0x18]
+
+v_pk_min_f16 v5, -1, v2
+// CHECK: [0x05,0x00,0x91,0xd3,0xc1,0x04,0x02,0x18]
+
+v_pk_min_f16 v5, 0.5, v2
+// CHECK: [0x05,0x00,0x91,0xd3,0xf0,0x04,0x02,0x18]
+
+v_pk_min_f16 v5, -4.0, v2
+// CHECK: [0x05,0x00,0x91,0xd3,0xf7,0x04,0x02,0x18]
+
v_pk_min_f16 v5, v1, v255
// CHECK: [0x05,0x00,0x91,0xd3,0x01,0xff,0x03,0x18]
@@ -51772,6 +52780,18 @@ v_pk_min_f16 v5, v1, exec_hi
v_pk_min_f16 v5, v1, v2 op_sel:[0,0]
// CHECK: [0x05,0x00,0x91,0xd3,0x01,0x05,0x02,0x18]
+v_pk_min_f16 v5, v1, 0
+// CHECK: [0x05,0x00,0x91,0xd3,0x01,0x01,0x01,0x18]
+
+v_pk_min_f16 v5, v1, -1
+// CHECK: [0x05,0x00,0x91,0xd3,0x01,0x83,0x01,0x18]
+
+v_pk_min_f16 v5, v1, 0.5
+// CHECK: [0x05,0x00,0x91,0xd3,0x01,0xe1,0x01,0x18]
+
+v_pk_min_f16 v5, v1, -4.0
+// CHECK: [0x05,0x00,0x91,0xd3,0x01,0xef,0x01,0x18]
+
v_pk_min_f16 v5, v1, v2 op_sel:[1,0]
// CHECK: [0x05,0x08,0x91,0xd3,0x01,0x05,0x02,0x18]
@@ -51850,6 +52870,18 @@ v_pk_max_f16 v5, exec_lo, v2
v_pk_max_f16 v5, exec_hi, v2
// CHECK: [0x05,0x00,0x92,0xd3,0x7f,0x04,0x02,0x18]
+v_pk_max_f16 v5, 0, v2
+// CHECK: [0x05,0x00,0x92,0xd3,0x80,0x04,0x02,0x18]
+
+v_pk_max_f16 v5, -1, v2
+// CHECK: [0x05,0x00,0x92,0xd3,0xc1,0x04,0x02,0x18]
+
+v_pk_max_f16 v5, 0.5, v2
+// CHECK: [0x05,0x00,0x92,0xd3,0xf0,0x04,0x02,0x18]
+
+v_pk_max_f16 v5, -4.0, v2
+// CHECK: [0x05,0x00,0x92,0xd3,0xf7,0x04,0x02,0x18]
+
v_pk_max_f16 v5, v1, v255
// CHECK: [0x05,0x00,0x92,0xd3,0x01,0xff,0x03,0x18]
@@ -51883,6 +52915,18 @@ v_pk_max_f16 v5, v1, exec_hi
v_pk_max_f16 v5, v1, v2 op_sel:[0,0]
// CHECK: [0x05,0x00,0x92,0xd3,0x01,0x05,0x02,0x18]
+v_pk_max_f16 v5, v1, 0
+// CHECK: [0x05,0x00,0x92,0xd3,0x01,0x01,0x01,0x18]
+
+v_pk_max_f16 v5, v1, -1
+// CHECK: [0x05,0x00,0x92,0xd3,0x01,0x83,0x01,0x18]
+
+v_pk_max_f16 v5, v1, 0.5
+// CHECK: [0x05,0x00,0x92,0xd3,0x01,0xe1,0x01,0x18]
+
+v_pk_max_f16 v5, v1, -4.0
+// CHECK: [0x05,0x00,0x92,0xd3,0x01,0xef,0x01,0x18]
+
v_pk_max_f16 v5, v1, v2 op_sel:[1,0]
// CHECK: [0x05,0x08,0x92,0xd3,0x01,0x05,0x02,0x18]
OpenPOWER on IntegriCloud