[clang] [llvm] [RISCV][MC] Implement MC for Base P extension (PR #123271)
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 12 00:05:39 PST 2025
================
@@ -0,0 +1,1440 @@
+// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --tool ./llvm-objdump --version 5
+# RUN: llvm-mc %s -triple=riscv32 -mattr=+experimental-p -riscv-no-aliases -show-encoding \
+# RUN: | FileCheck -check-prefixes=CHECK-ASM %s
+
+clz a0, a1
+// CHECK-ASM: clz a0, a1 # encoding: [0x13,0x95,0x05,0x60]
+
+cls a1, a2
+// CHECK-ASM: cls a1, a2 # encoding: [0x93,0x15,0x36,0x60]
+
+sext.b a2, a3
+// CHECK-ASM: sext.b a2, a3 # encoding: [0x13,0x96,0x46,0x60]
+
+sext.h t0, t1
+// CHECK-ASM: sext.h t0, t1 # encoding: [0x93,0x12,0x53,0x60]
+
+abs a4, a5
+// CHECK-ASM: abs a4, a5 # encoding: [0x13,0x97,0x77,0x60]
+
+rev8 s0, s1
+// CHECK-ASM: rev8 s0, s1 # encoding: [0x13,0xd4,0x84,0x69]
+
+rev s2, s3
+// CHECK-ASM: rev s2, s3 # encoding: [0x13,0xd9,0xf9,0x69]
+
+sh1add a0, a1, a2
+// CHECK-ASM: sh1add a0, a1, a2 # encoding: [0x33,0xa5,0xc5,0x20]
+
+pack s0, s1, s2
+// CHECK-ASM: pack s0, s1, s2 # encoding: [0x33,0xc4,0x24,0x09]
+
+min t0, t1, t2
+// CHECK-ASM: min t0, t1, t2 # encoding: [0xb3,0x42,0x73,0x0a]
+
+minu x1, x2, x3
+// CHECK-ASM: minu ra, sp, gp # encoding: [0xb3,0x50,0x31,0x0a]
+
+max t3, t4, t5
+// CHECK-ASM: max t3, t4, t5 # encoding: [0x33,0xee,0xee,0x0b]
+
+maxu a4, a5, a6
+// CHECK-ASM: maxu a4, a5, a6 # encoding: [0x33,0xf7,0x07,0x0b]
+
+pslli.b a6, a7
+// CHECK-ASM: pslli.b a6, a7 # encoding: [0x1b,0xa8,0x88,0x80]
+
+pslli.h x1, x2
+// CHECK-ASM: pslli.h ra, sp # encoding: [0x9b,0x20,0x01,0x81]
+
+psslai.h t0, t1
+// CHECK-ASM: psslai.h t0, t1 # encoding: [0x9b,0x22,0x03,0xd1]
+
+sslai a4, a5
+// CHECK-ASM: sslai a4, a5 # encoding: [0x1b,0xa7,0x07,0xd2]
+
+pli.h a5, 0x5
+// CHECK-ASM: pli.h a5, 5 # encoding: [0x9b,0xa7,0x02,0xb0]
+
+pli.b a6, 0x6
+// CHECK-ASM: pli.b a6, 6 # encoding: [0x1b,0x28,0x06,0xb4]
+
+psext.h.b a7, a0
+// CHECK-ASM: psext.h.b a7, a0 # encoding: [0x9b,0x28,0x45,0xe0]
+
+psabs.h a1, a2
+// CHECK-ASM: psabs.h a1, a2 # encoding: [0x9b,0x25,0x76,0xe0]
+
+psabs.b t0, t1
+// CHECK-ASM: psabs.b t0, t1 # encoding: [0x9b,0x22,0x73,0xe2]
+
+plui.h x3, 0x3
+// CHECK-ASM: plui.h gp, 3 # encoding: [0x9b,0xa1,0x01,0xf0]
+
+psll.hs a0, a1, a2
+// CHECK-ASM: psll.hs a0, a1, a2 # encoding: [0x1b,0xa5,0xc5,0x88]
+
+psll.bs a3, a4, a5
+// CHECK-ASM: psll.bs a3, a4, a5 # encoding: [0x9b,0x26,0xf7,0x8c]
+
+padd.hs t0, t1, t2
+// CHECK-ASM: padd.hs t0, t1, t2 # encoding: [0x9b,0x22,0x73,0x98]
+
+padd.bs x1, a1, a2
+// CHECK-ASM: padd.bs ra, a1, a2 # encoding: [0x9b,0xa0,0xc5,0x9c]
+
+pssha.hs a3, a4, a5
+// CHECK-ASM: pssha.hs a3, a4, a5 # encoding: [0x9b,0x26,0xf7,0xe8]
+
+ssha x3, a4, a5
+// CHECK-ASM: ssha gp, a4, a5 # encoding: [0x9b,0x21,0xf7,0xea]
+
+psshar.hs a6, a7, a0
+// CHECK-ASM: psshar.hs a6, a7, a0 # encoding: [0x1b,0xa8,0xa8,0xf8]
+
+sshar x6, a7, a0
+// CHECK-ASM: sshar t1, a7, a0 # encoding: [0x1b,0xa3,0xa8,0xfa]
+
+psrli.b a1, a2
+// CHECK-ASM: psrli.b a1, a2 # encoding: [0x9b,0x45,0x86,0x80]
+
+psrli.h a0, a1
+// CHECK-ASM: psrli.h a0, a1 # encoding: [0x1b,0xc5,0x05,0x81]
+
+pusati.h a2, t1
+// CHECK-ASM: pusati.h a2, t1 # encoding: [0x1b,0x46,0x03,0xa1]
+
+usati a3, t2
+// CHECK-ASM: usati a3, t2 # encoding: [0x9b,0xc6,0x03,0xa2]
+
+psrai.b a4, a5
+// CHECK-ASM: psrai.b a4, a5 # encoding: [0x1b,0xc7,0x87,0xc0]
+
+psrai.h a6, a7
+// CHECK-ASM: psrai.h a6, a7 # encoding: [0x1b,0xc8,0x08,0xc1]
+
+psrari.h a0, a1
+// CHECK-ASM: psrari.h a0, a1 # encoding: [0x1b,0xc5,0x05,0xd1]
+
+srari a2, a3
+// CHECK-ASM: srari a2, a3 # encoding: [0x1b,0xc6,0x06,0xd2]
+
+psati.h a4, t0
+// CHECK-ASM: psati.h a4, t0 # encoding: [0x1b,0xc7,0x02,0xe1]
+
+sati a5, t1
+// CHECK-ASM: sati a5, t1 # encoding: [0x9b,0x47,0x03,0xe2]
+
+psrl.hs a6, a7, a1
+// CHECK-ASM: psrl.hs a6, a7, a1 # encoding: [0x1b,0xc8,0xb8,0x88]
+
+psrl.bs a1, a2, a3
+// CHECK-ASM: psrl.bs a1, a2, a3 # encoding: [0x9b,0x45,0xd6,0x8c]
+
+predsum.hs a4, a5, a6
+// CHECK-ASM: predsum.hs a4, a5, a6 # encoding: [0x1b,0xc7,0x07,0x99]
+
+predsum.bs a7, a1, a1
+// CHECK-ASM: predsum.bs a7, a1, a1 # encoding: [0x9b,0xc8,0xb5,0x9c]
+
+predsumu.hs t0, t1, t2
+// CHECK-ASM: predsumu.hs t0, t1, t2 # encoding: [0x9b,0x42,0x73,0xb8]
+
+predsumu.bs t3, t4, t5
+// CHECK-ASM: predsumu.bs t3, t4, t5 # encoding: [0x1b,0xce,0xee,0xbd]
+
+psra.hs x1, a1, a2
+// CHECK-ASM: psra.hs ra, a1, a2 # encoding: [0x9b,0xc0,0xc5,0xc8]
+
+psra.bs x2, a2, a3
+// CHECK-ASM: psra.bs sp, a2, a3 # encoding: [0x1b,0x41,0xd6,0xcc]
+
+psslai.h t0, t1
+// CHECK-ASM: psslai.h t0, t1 # encoding: [0x9b,0x22,0x03,0xd1]
+
+sslai a4, a5
+// CHECK-ASM: sslai a4, a5 # encoding: [0x1b,0xa7,0x07,0xd2]
+
+pli.h a5, 0x5
+// CHECK-ASM: pli.h a5, 5 # encoding: [0x9b,0xa7,0x02,0xb0]
+
+pli.b a6, 0x6
+// CHECK-ASM: pli.b a6, 6 # encoding: [0x1b,0x28,0x06,0xb4]
+
+psext.h.b a7, a0
+// CHECK-ASM: psext.h.b a7, a0 # encoding: [0x9b,0x28,0x45,0xe0]
+
+psabs.h a1, a2
+// CHECK-ASM: psabs.h a1, a2 # encoding: [0x9b,0x25,0x76,0xe0]
+
+psabs.b t0, t1
+// CHECK-ASM: psabs.b t0, t1 # encoding: [0x9b,0x22,0x73,0xe2]
+
+plui.h x3, 0x3
+// CHECK-ASM: plui.h gp, 3 # encoding: [0x9b,0xa1,0x01,0xf0]
+
+psll.hs a0, a1, a2
+// CHECK-ASM: psll.hs a0, a1, a2 # encoding: [0x1b,0xa5,0xc5,0x88]
+
+psll.bs a3, a4, a5
+// CHECK-ASM: psll.bs a3, a4, a5 # encoding: [0x9b,0x26,0xf7,0x8c]
+
+padd.hs t0, t1, t2
+// CHECK-ASM: padd.hs t0, t1, t2 # encoding: [0x9b,0x22,0x73,0x98]
+
+padd.bs x1, a1, a2
+// CHECK-ASM: padd.bs ra, a1, a2 # encoding: [0x9b,0xa0,0xc5,0x9c]
+
+pssha.hs a3, a4, a5
+// CHECK-ASM: pssha.hs a3, a4, a5 # encoding: [0x9b,0x26,0xf7,0xe8]
+
+ssha x3, a4, a5
+// CHECK-ASM: ssha gp, a4, a5 # encoding: [0x9b,0x21,0xf7,0xea]
+
+psshar.hs a6, a7, a0
+// CHECK-ASM: psshar.hs a6, a7, a0 # encoding: [0x1b,0xa8,0xa8,0xf8]
+
+sshar x6, a7, a0
+// CHECK-ASM: sshar t1, a7, a0 # encoding: [0x1b,0xa3,0xa8,0xfa]
+
+psrli.b a1, a2
+// CHECK-ASM: psrli.b a1, a2 # encoding: [0x9b,0x45,0x86,0x80]
+
+psrli.h a0, a1
+// CHECK-ASM: psrli.h a0, a1 # encoding: [0x1b,0xc5,0x05,0x81]
+
+pusati.h a2, t1
+// CHECK-ASM: pusati.h a2, t1 # encoding: [0x1b,0x46,0x03,0xa1]
+
+usati a3, t2
+// CHECK-ASM: usati a3, t2 # encoding: [0x9b,0xc6,0x03,0xa2]
+
+psrai.b a4, a5
+// CHECK-ASM: psrai.b a4, a5 # encoding: [0x1b,0xc7,0x87,0xc0]
+
+psrai.h a6, a7
+// CHECK-ASM: psrai.h a6, a7 # encoding: [0x1b,0xc8,0x08,0xc1]
+
+psrari.h a0, a1
+// CHECK-ASM: psrari.h a0, a1 # encoding: [0x1b,0xc5,0x05,0xd1]
+
+srari a2, a3
+// CHECK-ASM: srari a2, a3 # encoding: [0x1b,0xc6,0x06,0xd2]
+
+psati.h a4, t0
+// CHECK-ASM: psati.h a4, t0 # encoding: [0x1b,0xc7,0x02,0xe1]
+
+sati a5, t1
+// CHECK-ASM: sati a5, t1 # encoding: [0x9b,0x47,0x03,0xe2]
+
+psrl.hs a6, a7, a1
+// CHECK-ASM: psrl.hs a6, a7, a1 # encoding: [0x1b,0xc8,0xb8,0x88]
+
+psrl.bs a1, a2, a3
+// CHECK-ASM: psrl.bs a1, a2, a3 # encoding: [0x9b,0x45,0xd6,0x8c]
+
+predsum.hs a4, a5, a6
+// CHECK-ASM: predsum.hs a4, a5, a6 # encoding: [0x1b,0xc7,0x07,0x99]
+
+predsum.bs a7, a1, a1
+// CHECK-ASM: predsum.bs a7, a1, a1 # encoding: [0x9b,0xc8,0xb5,0x9c]
+
+predsumu.hs t0, t1, t2
+// CHECK-ASM: predsumu.hs t0, t1, t2 # encoding: [0x9b,0x42,0x73,0xb8]
+
+predsumu.bs t3, t4, t5
+// CHECK-ASM: predsumu.bs t3, t4, t5 # encoding: [0x1b,0xce,0xee,0xbd]
+
+psra.hs x1, a1, a2
+// CHECK-ASM: psra.hs ra, a1, a2 # encoding: [0x9b,0xc0,0xc5,0xc8]
+
+psra.bs x2, a2, a3
+// CHECK-ASM: psra.bs sp, a2, a3 # encoding: [0x1b,0x41,0xd6,0xcc]
+
+padd.h t0, t1, t2
+// CHECK-ASM: padd.h t0, t1, t2 # encoding: [0xbb,0x02,0x73,0x80]
+
+padd.b x1, a1, a2
+// CHECK-ASM: padd.b ra, a1, a2 # encoding: [0xbb,0x80,0xc5,0x84]
+
+psadd.h t3, t4, t5
+// CHECK-ASM: psadd.h t3, t4, t5 # encoding: [0x3b,0x8e,0xee,0x91]
+
+sadd x6, a7, a0
+// CHECK-ASM: sadd t1, a7, a0 # encoding: [0x3b,0x83,0xa8,0x92]
+
+psadd.b t0, t1, t2
+// CHECK-ASM: psadd.b t0, t1, t2 # encoding: [0xbb,0x02,0x73,0x94]
+
+paadd.h t3, t4, t5
+// CHECK-ASM: paadd.h t3, t4, t5 # encoding: [0x3b,0x8e,0xee,0x99]
+
+aadd x6, a7, a0
+// CHECK-ASM: aadd t1, a7, a0 # encoding: [0x3b,0x83,0xa8,0x9a]
+
+paadd.b t0, t1, t2
+// CHECK-ASM: paadd.b t0, t1, t2 # encoding: [0xbb,0x02,0x73,0x9c]
+
+psaddu.h t3, t4, t5
+// CHECK-ASM: psaddu.h t3, t4, t5 # encoding: [0x3b,0x8e,0xee,0xb1]
+
+saddu x6, a7, a0
+// CHECK-ASM: saddu t1, a7, a0 # encoding: [0x3b,0x83,0xa8,0xb2]
+
+psaddu.b t0, t1, t2
+// CHECK-ASM: psaddu.b t0, t1, t2 # encoding: [0xbb,0x02,0x73,0xb4]
+
+paaddu.h t3, t4, t5
+// CHECK-ASM: paaddu.h t3, t4, t5 # encoding: [0x3b,0x8e,0xee,0xb9]
+
+aaddu x6, a7, a0
+// CHECK-ASM: aaddu t1, a7, a0 # encoding: [0x3b,0x83,0xa8,0xba]
+
+paaddu.b t0, t1, t2
+// CHECK-ASM: paaddu.b t0, t1, t2 # encoding: [0xbb,0x02,0x73,0xbc]
+
+psub.h t3, t4, t5
+// CHECK-ASM: psub.h t3, t4, t5 # encoding: [0x3b,0x8e,0xee,0xc1]
+
+psub.b t0, t1, t2
+// CHECK-ASM: psub.b t0, t1, t2 # encoding: [0xbb,0x02,0x73,0xc4]
+
+pdif.h t3, t4, t5
+// CHECK-ASM: pdif.h t3, t4, t5 # encoding: [0x3b,0x8e,0xee,0xc9]
+
+pdif.b t0, t1, t2
+// CHECK-ASM: pdif.b t0, t1, t2 # encoding: [0xbb,0x02,0x73,0xcc]
+
+pssub.h t3, t4, t5
+// CHECK-ASM: pssub.h t3, t4, t5 # encoding: [0x3b,0x8e,0xee,0xd1]
+
+ssub x6, a7, a0
+// CHECK-ASM: ssub t1, a7, a0 # encoding: [0x3b,0x83,0xa8,0xd2]
+
+pssub.b t0, t1, t2
+// CHECK-ASM: pssub.b t0, t1, t2 # encoding: [0xbb,0x02,0x73,0xd4]
+
+pasub.h t3, t4, t5
+// CHECK-ASM: pasub.h t3, t4, t5 # encoding: [0x3b,0x8e,0xee,0xd9]
+
+asub x6, a7, a0
+// CHECK-ASM: asub t1, a7, a0 # encoding: [0x3b,0x83,0xa8,0xda]
+
+pasub.b t0, t1, t2
+// CHECK-ASM: pasub.b t0, t1, t2 # encoding: [0xbb,0x02,0x73,0xdc]
+
+pdifu.h t3, t4, t5
+// CHECK-ASM: pdifu.h t3, t4, t5 # encoding: [0x3b,0x8e,0xee,0xe9]
+
+pdifu.b t0, t1, t2
+// CHECK-ASM: pdifu.b t0, t1, t2 # encoding: [0xbb,0x02,0x73,0xec]
+
+pssubu.h t3, t4, t5
+// CHECK-ASM: pssubu.h t3, t4, t5 # encoding: [0x3b,0x8e,0xee,0xf1]
+
+ssubu x6, a7, a0
+// CHECK-ASM: ssubu t1, a7, a0 # encoding: [0x3b,0x83,0xa8,0xf2]
+
+pssubu.b t0, t1, t2
+// CHECK-ASM: pssubu.b t0, t1, t2 # encoding: [0xbb,0x02,0x73,0xf4]
+
+pasubu.h t3, t4, t5
+// CHECK-ASM: pasubu.h t3, t4, t5 # encoding: [0x3b,0x8e,0xee,0xf9]
+
+asubu x6, a7, a0
+// CHECK-ASM: asubu t1, a7, a0 # encoding: [0x3b,0x83,0xa8,0xfa]
+
+pasubu.b t0, t1, t2
+// CHECK-ASM: pasubu.b t0, t1, t2 # encoding: [0xbb,0x02,0x73,0xfc]
+
+slx x3, a4, a5
+// CHECK-ASM: slx gp, a4, a5 # encoding: [0xbb,0x11,0xf7,0x8e]
+
+pmul.h.b01 t3, t4, t5
+// CHECK-ASM: pmul.h.b01 t3, t4, t5 # encoding: [0x3b,0x9e,0xee,0x91]
+
+mul.h01 t0, t1, t2
+// CHECK-ASM: mul.h01 t0, t1, t2 # encoding: [0xbb,0x12,0x73,0x92]
+
+macc.h01 t3, t4, t5
+// CHECK-ASM: macc.h01 t3, t4, t5 # encoding: [0x3b,0x9e,0xee,0x9b]
+
+mvm a0, a1, a2
+// CHECK-ASM: mvm a0, a1, a2 # encoding: [0x3b,0x95,0xc5,0xa8]
+
+mvmn x3, a4, a5
+// CHECK-ASM: mvmn gp, a4, a5 # encoding: [0xbb,0x11,0xf7,0xaa]
+
+merge t0, t1, t2
+// CHECK-ASM: merge t0, t1, t2 # encoding: [0xbb,0x12,0x73,0xac]
+
+srx x3, a4, a5
+// CHECK-ASM: srx gp, a4, a5 # encoding: [0xbb,0x11,0xf7,0xae]
+
+pmulu.h.b01 t3, t4, t5
+// CHECK-ASM: pmulu.h.b01 t3, t4, t5 # encoding: [0x3b,0x9e,0xee,0xb1]
+
+mulu.h01 t0, t1, t2
+// CHECK-ASM: mulu.h01 t0, t1, t2 # encoding: [0xbb,0x12,0x73,0xb2]
+
+pdifsumu.b t3, t4, t5
+// CHECK-ASM: pdifsumu.b t3, t4, t5 # encoding: [0x3b,0x9e,0xee,0xb5]
+
+maccu.h01 t3, t4, t5
+// CHECK-ASM: maccu.h01 t3, t4, t5 # encoding: [0x3b,0x9e,0xee,0xbb]
+
+pdifsumau.b t3, t4, t5
+// CHECK-ASM: pdifsumau.b t3, t4, t5 # encoding: [0x3b,0x9e,0xee,0xbd]
+
+mul.h01 t0, t1, t2
+// CHECK-ASM: mul.h01 t0, t1, t2 # encoding: [0xbb,0x12,0x73,0x92]
+
+macc.h01 t3, t4, t5
+// CHECK-ASM: macc.h01 t3, t4, t5 # encoding: [0x3b,0x9e,0xee,0x9b]
+
+mulu.h01 a0, a1, a2
+// CHECK-ASM: mulu.h01 a0, a1, a2 # encoding: [0x3b,0x95,0xc5,0xb2]
+
+maccu.h01 a3, a4, a5
+// CHECK-ASM: maccu.h01 a3, a4, a5 # encoding: [0xbb,0x16,0xf7,0xba]
+
+psh1add.h a0, a1, a2
+// CHECK-ASM: psh1add.h a0, a1, a2 # encoding: [0x3b,0xa5,0xc5,0xa0]
+
+pssh1sadd.h a3, a4, a5
+// CHECK-ASM: pssh1sadd.h a3, a4, a5 # encoding: [0xbb,0x26,0xf7,0xb0]
+
+ssh1sadd t0, t1, t2
+// CHECK-ASM: ssh1sadd t0, t1, t2 # encoding: [0xbb,0x22,0x73,0xa2]
+
+pmul.h.b00 s6, t4, s8
+// CHECK-ASM: pmul.h.b00 s6, t4, s8 # encoding: [0x3b,0xbb,0x8e,0x81]
+
+pmul.h.b11 t0, t4, s4
+// CHECK-ASM: pmul.h.b11 t0, t4, s4 # encoding: [0xbb,0xb2,0x4e,0x91]
+
+pmulu.h.b00 t2, s6, s8
+// CHECK-ASM: pmulu.h.b00 t2, s6, s8 # encoding: [0xbb,0x33,0x8b,0xa1]
+
+pmulu.h.b11 t2, s6, a0
+// CHECK-ASM: pmulu.h.b11 t2, s6, a0 # encoding: [0xbb,0x33,0xab,0xb0]
+
+pmulsu.h.b00 s4, a4, s8
+// CHECK-ASM: pmulsu.h.b00 s4, a4, s8 # encoding: [0x3b,0x3a,0x87,0xe1]
+
+pmulsu.h.b11 s6, a2, s4
+// CHECK-ASM: pmulsu.h.b11 s6, a2, s4 # encoding: [0x3b,0x3b,0x46,0xf1]
+
+mul.h00 a4, t4, s2
+// CHECK-ASM: mul.h00 a4, t4, s2 # encoding: [0x3b,0xb7,0x2e,0x83]
+
+macc.h00 a4, a0, s0
+// CHECK-ASM: macc.h00 a4, a0, s0 # encoding: [0x3b,0x37,0x85,0x8a]
+
+mul.h11 a0, a4, a0
+// CHECK-ASM: mul.h11 a0, a4, a0 # encoding: [0x3b,0x35,0xa7,0x92]
+
+macc.h11 s6, a4, s4
+// CHECK-ASM: macc.h11 s6, a4, s4 # encoding: [0x3b,0x3b,0x47,0x9b]
+
+mulu.h00 s6, s0, a0
+// CHECK-ASM: mulu.h00 s6, s0, a0 # encoding: [0x3b,0x3b,0xa4,0xa2]
+
+maccu.h00 s0, s6, s0
+// CHECK-ASM: maccu.h00 s0, s6, s0 # encoding: [0x3b,0x34,0x8b,0xaa]
+
+mulu.h11 s0, s4, s6
+// CHECK-ASM: mulu.h11 s0, s4, s6 # encoding: [0x3b,0x34,0x6a,0xb3]
+
+maccu.h11 s0, t4, t4
+// CHECK-ASM: maccu.h11 s0, t4, t4 # encoding: [0x3b,0xb4,0xde,0xbb]
+
+mulsu.h00 a4, s4, s6
+// CHECK-ASM: mulsu.h00 a4, s4, s6 # encoding: [0x3b,0x37,0x6a,0xe3]
+
+maccsu.h00 s4, s4, s0
+// CHECK-ASM: maccsu.h00 s4, s4, s0 # encoding: [0x3b,0x3a,0x8a,0xea]
+
+mulsu.h11 s8, s4, s0
+// CHECK-ASM: mulsu.h11 s8, s4, s0 # encoding: [0x3b,0x3c,0x8a,0xf2]
+
+maccsu.h11 s0, a2, s6
+// CHECK-ASM: maccsu.h11 s0, a2, s6 # encoding: [0x3b,0x34,0x66,0xfb]
+
+ppack.h t1, a2, t5
+// CHECK-ASM: ppack.h t1, a2, t5 # encoding: [0x3b,0x43,0xe6,0x81]
+
+ppackbt.h t5, t3, s2
+// CHECK-ASM: ppackbt.h t5, t3, s2 # encoding: [0x3b,0x4f,0x2e,0x91]
+
+ppacktb.h t1, t1, s0
+// CHECK-ASM: ppacktb.h t1, t1, s0 # encoding: [0x3b,0x43,0x83,0xa0]
+
+ppackt.h t3, s0, s0
+// CHECK-ASM: ppackt.h t3, s0, s0 # encoding: [0x3b,0x4e,0x84,0xb0]
+
+packbt t1, t1, s2
+// CHECK-ASM: packbt t1, t1, s2 # encoding: [0x3b,0x43,0x23,0x93]
+
+packtb t5, s0, a2
+// CHECK-ASM: packtb t5, s0, a2 # encoding: [0x3b,0x4f,0xc4,0xa2]
+
+packt a4, t5, t5
+// CHECK-ASM: packt a4, t5, t5 # encoding: [0x3b,0x47,0xef,0xb3]
+
+pm2add.h t3, t1, s0
+// CHECK-ASM: pm2add.h t3, t1, s0 # encoding: [0x3b,0x5e,0x83,0x80]
+
+pm4add.b t1, s2, t5
+// CHECK-ASM: pm4add.b t1, s2, t5 # encoding: [0x3b,0x53,0xe9,0x85]
+
+pm2adda.h t1, s2, a4
+// CHECK-ASM: pm2adda.h t1, s2, a4 # encoding: [0x3b,0x53,0xe9,0x88]
+
+pm4adda.b t3, a0, t5
+// CHECK-ASM: pm4adda.b t3, a0, t5 # encoding: [0x3b,0x5e,0xe5,0x8d]
+
+pm2add.hx s0, t5, a4
+// CHECK-ASM: pm2add.hx s0, t5, a4 # encoding: [0x3b,0x54,0xef,0x90]
+
+pm2adda.hx a0, a0, t1
+// CHECK-ASM: pm2adda.hx a0, a0, t1 # encoding: [0x3b,0x55,0x65,0x98]
+
+pm2addu.h s2, t5, a2
+// CHECK-ASM: pm2addu.h s2, t5, a2 # encoding: [0x3b,0x59,0xcf,0xa0]
+
+pm4addu.b t5, s0, t1
+// CHECK-ASM: pm4addu.b t5, s0, t1 # encoding: [0x3b,0x5f,0x64,0xa4]
+
+pm2addau.h t3, t1, t5
+// CHECK-ASM: pm2addau.h t3, t1, t5 # encoding: [0x3b,0x5e,0xe3,0xa9]
+
+pm4addau.b a4, t3, a0
+// CHECK-ASM: pm4addau.b a4, t3, a0 # encoding: [0x3b,0x57,0xae,0xac]
+
+pmq2add.h t1, a2, t1
+// CHECK-ASM: pmq2add.h t1, a2, t1 # encoding: [0x3b,0x53,0x66,0xb0]
+
+pmqr2add.h a2, a4, s2
+// CHECK-ASM: pmqr2add.h a2, a4, s2 # encoding: [0x3b,0x56,0x27,0xb5]
+
+pmq2adda.h t5, t3, t1
+// CHECK-ASM: pmq2adda.h t5, t3, t1 # encoding: [0x3b,0x5f,0x6e,0xb8]
+
+pmqr2adda.h t1, s0, a2
+// CHECK-ASM: pmqr2adda.h t1, s0, a2 # encoding: [0x3b,0x53,0xc4,0xbc]
+
+pm2sub.h t1, a0, a4
+// CHECK-ASM: pm2sub.h t1, a0, a4 # encoding: [0x3b,0x53,0xe5,0xc0]
+
+pm2sadd.h s2, s2, t3
+// CHECK-ASM: pm2sadd.h s2, s2, t3 # encoding: [0x3b,0x59,0xc9,0xc5]
+
+pm2suba.h s0, s0, t3
+// CHECK-ASM: pm2suba.h s0, s0, t3 # encoding: [0x3b,0x54,0xc4,0xc9]
+
+pm2sub.hx a2, a2, a0
+// CHECK-ASM: pm2sub.hx a2, a2, a0 # encoding: [0x3b,0x56,0xa6,0xd0]
+
+pm2sadd.hx t5, s2, a0
+// CHECK-ASM: pm2sadd.hx t5, s2, a0 # encoding: [0x3b,0x5f,0xa9,0xd4]
+
+pm2suba.hx a4, a2, t5
+// CHECK-ASM: pm2suba.hx a4, a2, t5 # encoding: [0x3b,0x57,0xe6,0xd9]
+
+pm2addsu.h s0, s0, s2
+// CHECK-ASM: pm2addsu.h s0, s0, s2 # encoding: [0x3b,0x54,0x24,0xe1]
+
+pm4addsu.b a0, s0, t3
+// CHECK-ASM: pm4addsu.b a0, s0, t3 # encoding: [0x3b,0x55,0xc4,0xe5]
+
+pm2addasu.h a4, t1, a2
+// CHECK-ASM: pm2addasu.h a4, t1, a2 # encoding: [0x3b,0x57,0xc3,0xe8]
+
+pm4addasu.b s2, s0, a2
+// CHECK-ASM: pm4addasu.b s2, s0, a2 # encoding: [0x3b,0x59,0xc4,0xec]
+
+mqacc.h01 a4, t1, a0
+// CHECK-ASM: mqacc.h01 a4, t1, a0 # encoding: [0x3b,0x57,0xa3,0xb8]
+
+mqracc.h01 s0, a0, t5
+// CHECK-ASM: mqracc.h01 s0, a0, t5 # encoding: [0x3b,0x54,0xe5,0xbd]
+
+pas.hx t5, s2, t5
+// CHECK-ASM: pas.hx t5, s2, t5 # encoding: [0x3b,0x6f,0xe9,0x81]
+
+psa.hx s0, t1, t3
+// CHECK-ASM: psa.hx s0, t1, t3 # encoding: [0x3b,0x64,0xc3,0x85]
+
+psas.hx t5, s2, a2
+// CHECK-ASM: psas.hx t5, s2, a2 # encoding: [0x3b,0x6f,0xc9,0x90]
+
+pssa.hx s2, t3, t5
+// CHECK-ASM: pssa.hx s2, t3, t5 # encoding: [0x3b,0x69,0xee,0x95]
+
+pmseq.h a0, t1, s0
+// CHECK-ASM: pmseq.h a0, t1, s0 # encoding: [0x3b,0x65,0x83,0xc0]
+
+pmseq.b s0, s2, s0
+// CHECK-ASM: pmseq.b s0, s2, s0 # encoding: [0x3b,0x64,0x89,0xc4]
+
+pmslt.h t3, a2, a4
+// CHECK-ASM: pmslt.h t3, a2, a4 # encoding: [0x3b,0x6e,0xe6,0xd0]
+
+pmslt.b t5, a4, t1
+// CHECK-ASM: pmslt.b t5, a4, t1 # encoding: [0x3b,0x6f,0x67,0xd4]
+
+pmsltu.h s2, s0, s2
+// CHECK-ASM: pmsltu.h s2, s0, s2 # encoding: [0x3b,0x69,0x24,0xd9]
+
+pmsltu.b s0, s2, t5
+// CHECK-ASM: pmsltu.b s0, s2, t5 # encoding: [0x3b,0x64,0xe9,0xdd]
+
+pmin.h s2, t3, s2
+// CHECK-ASM: pmin.h s2, t3, s2 # encoding: [0x3b,0x69,0x2e,0xe1]
+
+pmin.b a2, a2, t5
+// CHECK-ASM: pmin.b a2, a2, t5 # encoding: [0x3b,0x66,0xe6,0xe5]
+
+pminu.h a0, a4, a2
+// CHECK-ASM: pminu.h a0, a4, a2 # encoding: [0x3b,0x65,0xc7,0xe8]
+
+pminu.b a4, t3, s2
+// CHECK-ASM: pminu.b a4, t3, s2 # encoding: [0x3b,0x67,0x2e,0xed]
+
+pmax.h a4, s2, a0
+// CHECK-ASM: pmax.h a4, s2, a0 # encoding: [0x3b,0x67,0xa9,0xf0]
+
+pmax.b t1, s0, s0
+// CHECK-ASM: pmax.b t1, s0, s0 # encoding: [0x3b,0x63,0x84,0xf4]
+
+pmaxu.h a0, s0, s0
+// CHECK-ASM: pmaxu.h a0, s0, s0 # encoding: [0x3b,0x65,0x84,0xf8]
+
+pmaxu.b t3, a0, t1
+// CHECK-ASM: pmaxu.b t3, a0, t1 # encoding: [0x3b,0x6e,0x65,0xfc]
+
+mseq a4, t1, s0
+// CHECK-ASM: mseq a4, t1, s0 # encoding: [0x3b,0x67,0x83,0xc2]
+
+mslt t5, t5, t1
+// CHECK-ASM: mslt t5, t5, t1 # encoding: [0x3b,0x6f,0x6f,0xd2]
+
+msltu s2, a0, t3
+// CHECK-ASM: msltu s2, a0, t3 # encoding: [0x3b,0x69,0xc5,0xdb]
+
+pmulh.h s0, t3, t3
+// CHECK-ASM: pmulh.h s0, t3, t3 # encoding: [0x3b,0x74,0xce,0x81]
+
+pmulhr.h t1, t5, s0
+// CHECK-ASM: pmulhr.h t1, t5, s0 # encoding: [0x3b,0x73,0x8f,0x84]
+
+pmhacc.h s0, t5, s2
+// CHECK-ASM: pmhacc.h s0, t5, s2 # encoding: [0x3b,0x74,0x2f,0x89]
+
+pmhracc.h a4, t3, a2
+// CHECK-ASM: pmhracc.h a4, t3, a2 # encoding: [0x3b,0x77,0xce,0x8c]
+
+pmulhu.h a4, t5, a2
+// CHECK-ASM: pmulhu.h a4, t5, a2 # encoding: [0x3b,0x77,0xcf,0x90]
+
+pmulhru.h a4, a2, a4
+// CHECK-ASM: pmulhru.h a4, a2, a4 # encoding: [0x3b,0x77,0xe6,0x94]
+
+pmhaccu.h a4, t1, t3
+// CHECK-ASM: pmhaccu.h a4, t1, t3 # encoding: [0x3b,0x77,0xc3,0x99]
+
+pmhraccu.h s2, s0, t1
+// CHECK-ASM: pmhraccu.h s2, s0, t1 # encoding: [0x3b,0x79,0x64,0x9c]
+
+pmulh.h.b0 a0, t5, a4
+// CHECK-ASM: pmulh.h.b0 a0, t5, a4 # encoding: [0x3b,0x75,0xef,0xa0]
+
+pmulhsu.h.b0 s0, a4, s2
+// CHECK-ASM: pmulhsu.h.b0 s0, a4, s2 # encoding: [0x3b,0x74,0x27,0xa5]
+
+pmhaccu.h.b0 s0, a0, t5
+// CHECK-ASM: pmhaccu.h.b0 s0, a0, t5 # encoding: [0x3b,0x74,0xe5,0xa9]
+
+pmhaccsu.h.b0 t3, s0, a4
+// CHECK-ASM: pmhaccsu.h.b0 t3, s0, a4 # encoding: [0x3b,0x7e,0xe4,0xac]
+
+pmulh.h.b1 a0, a4, s2
+// CHECK-ASM: pmulh.h.b1 a0, a4, s2 # encoding: [0x3b,0x75,0x27,0xb1]
+
+pmulhsu.h.b1 t5, t3, t1
+// CHECK-ASM: pmulhsu.h.b1 t5, t3, t1 # encoding: [0x3b,0x7f,0x6e,0xb4]
+
+pmhacc.h.b1 t1, t5, a2
+// CHECK-ASM: pmhacc.h.b1 t1, t5, a2 # encoding: [0x3b,0x73,0xcf,0xb8]
+
+pmhaccsu.h.b1 a2, a0, a4
+// CHECK-ASM: pmhaccsu.h.b1 a2, a0, a4 # encoding: [0x3b,0x76,0xe5,0xbc]
+
+pmulhsu.h s0, a0, t1
+// CHECK-ASM: pmulhsu.h s0, a0, t1 # encoding: [0x3b,0x74,0x65,0xc0]
+
+pmulhrsu.h t3, t5, a4
+// CHECK-ASM: pmulhrsu.h t3, t5, a4 # encoding: [0x3b,0x7e,0xef,0xc4]
+
+pmhaccsu.h s0, s0, a4
+// CHECK-ASM: pmhaccsu.h s0, s0, a4 # encoding: [0x3b,0x74,0xe4,0xc8]
+
+pmhraccsu.h a2, a2, a0
+// CHECK-ASM: pmhraccsu.h a2, a2, a0 # encoding: [0x3b,0x76,0xa6,0xcc]
+
+pmulq.h a0, t1, t1
+// CHECK-ASM: pmulq.h a0, t1, t1 # encoding: [0x3b,0x75,0x63,0xd0]
+
+pmulqr.h s2, s0, s2
+// CHECK-ASM: pmulqr.h s2, s0, s2 # encoding: [0x3b,0x79,0x24,0xd5]
+
+mulhr a4, s2, t5
+// CHECK-ASM: mulhr a4, s2, t5 # encoding: [0x3b,0x77,0xe9,0x87]
+
+mhacc t1, s0, a2
+// CHECK-ASM: mhacc t1, s0, a2 # encoding: [0x3b,0x73,0xc4,0x8a]
+
+mhracc t1, t5, s0
+// CHECK-ASM: mhracc t1, t5, s0 # encoding: [0x3b,0x73,0x8f,0x8e]
+
+mulhru t1, t5, s0
+// CHECK-ASM: mulhru t1, t5, s0 # encoding: [0x3b,0x73,0x8f,0x96]
+
+mhaccu t3, a2, s2
+// CHECK-ASM: mhaccu t3, a2, s2 # encoding: [0x3b,0x7e,0x26,0x9b]
+
+mhraccu a0, t1, a4
+// CHECK-ASM: mhraccu a0, t1, a4 # encoding: [0x3b,0x75,0xe3,0x9e]
+
+mulh.h0 t3, a4, t1
+// CHECK-ASM: mulh.h0 t3, a4, t1 # encoding: [0x3b,0x7e,0x67,0xa2]
+
+mulhsu.h0 t1, a2, a0
+// CHECK-ASM: mulhsu.h0 t1, a2, a0 # encoding: [0x3b,0x73,0xa6,0xa6]
+
+mhacc.h0 s0, a2, t3
+// CHECK-ASM: mhacc.h0 s0, a2, t3 # encoding: [0x3b,0x74,0xc6,0xab]
+
+mhaccsu.h0 a2, t1, s0
+// CHECK-ASM: mhaccsu.h0 a2, t1, s0 # encoding: [0x3b,0x76,0x83,0xae]
+
+mulh.h1 t1, t1, t3
+// CHECK-ASM: mulh.h1 t1, t1, t3 # encoding: [0x3b,0x73,0xc3,0xb3]
+
+mulhsu.h1 t3, a2, t1
+// CHECK-ASM: mulhsu.h1 t3, a2, t1 # encoding: [0x3b,0x7e,0x66,0xb6]
+
+mhacc.h1 t3, a2, a0
+// CHECK-ASM: mhacc.h1 t3, a2, a0 # encoding: [0x3b,0x7e,0xa6,0xba]
+
+mhaccsu.h1 s0, s2, s0
+// CHECK-ASM: mhaccsu.h1 s0, s2, s0 # encoding: [0x3b,0x74,0x89,0xbe]
+
+mulhrsu.h t5, a4, t5
+// CHECK-ASM: mulhrsu.h t5, a4, t5 # encoding: [0x3b,0x7f,0xe7,0xc7]
+
+mhaccsu a0, a2, s2
+// CHECK-ASM: mhaccsu a0, a2, s2 # encoding: [0x3b,0x75,0x26,0xcb]
+
+mhraccsu a0, a0, t1
+// CHECK-ASM: mhraccsu a0, a0, t1 # encoding: [0x3b,0x75,0x65,0xce]
+
+mulq t1, a2, a2
+// CHECK-ASM: mulq t1, a2, a2 # encoding: [0x3b,0x73,0xc6,0xd2]
+
+mulqr a4, a4, t3
+// CHECK-ASM: mulqr a4, a4, t3 # encoding: [0x3b,0x77,0xc7,0xd7]
+
+mqacc.h00 a2, t3, t3
+// CHECK-ASM: mqacc.h00 a2, t3, t3 # encoding: [0x3b,0x76,0xce,0xe9]
+
+mqracc.h00 t5, a4, t3
+// CHECK-ASM: mqracc.h00 t5, a4, t3 # encoding: [0x3b,0x7f,0xc7,0xed]
+
+mqacc.h11 t5, t5, s0
+// CHECK-ASM: mqacc.h11 t5, t5, s0 # encoding: [0x3b,0x7f,0x8f,0xf8]
+
+mqracc.h11 s0, t5, s2
+// CHECK-ASM: mqracc.h11 s0, t5, s2 # encoding: [0x3b,0x74,0x2f,0xfd]
+
+pwslli.b a0, t1
+// CHECK-ASM: pwslli.b a0, t1 # encoding: [0x1b,0x4a,0x03,0x01]
+
+pwslli.h s0, a0
+// CHECK-ASM: pwslli.h s0, a0 # encoding: [0x1b,0x48,0x05,0x12]
+
+wslli s2, t3
+// CHECK-ASM: wslli s2, t3 # encoding: [0x1b,0x42,0x0e,0x24]
+
+pwslai.b t5, t5
+// CHECK-ASM: pwslai.b t5, t5 # encoding: [0x1b,0x4e,0x0f,0x41]
+
+pwslai.h t5, a4
+// CHECK-ASM: pwslai.h t5, a4 # encoding: [0x1b,0x4e,0x07,0x42]
+
+wslai t1, a2
+// CHECK-ASM: wslai t1, a2 # encoding: [0x1b,0x46,0x06,0x44]
+
+pli.dh s0, 0x7
+// CHECK-ASM: pli.dh s0, 7 # encoding: [0x1b,0xa4,0x03,0x30]
+
+pli.db a2, 0x1
+// CHECK-ASM: pli.db a2, 1 # encoding: [0x1b,0x26,0x01,0x34]
+
+plui.dh t5, 0x5
+// CHECK-ASM: plui.dh t5, 5 # encoding: [0x1b,0xaf,0x02,0x70]
+
+pwslli.bs t3, t1, s0
+// CHECK-ASM: pwslli.bs t3, t1, s0 # encoding: [0x1b,0x2c,0x83,0x08]
+
+pwsll.hs s0, a4, t1
+// CHECK-ASM: pwsll.hs s0, a4, t1 # encoding: [0x1b,0x28,0x67,0x0a]
+
+wsll a0, s0, s2
+// CHECK-ASM: wsll a0, s0, s2 # encoding: [0x1b,0x2a,0x24,0x0f]
+
+pwsla.bs s0, s0, s0
+// CHECK-ASM: pwsla.bs s0, s0, s0 # encoding: [0x1b,0x28,0x84,0x48]
+
+pwsla.hs a4, a2, t5
+// CHECK-ASM: pwsla.hs a4, a2, t5 # encoding: [0x1b,0x2e,0xe6,0x4b]
+
+wsla s0, a0, s2
+// CHECK-ASM: wsla s0, a0, s2 # encoding: [0x1b,0x28,0x25,0x4f]
+
+wzip8p t1, s2, a2
+// CHECK-ASM: wzip8p t1, s2, a2 # encoding: [0x1b,0x26,0xc9,0x78]
+
+wzip16p s2, t3, s2
+// CHECK-ASM: wzip16p s2, t3, s2 # encoding: [0x1b,0x22,0x2e,0x7b]
+
+pwadd.h a4, a2, a0
+// CHECK-ASM: pwadd.h a4, a2, a0 # encoding: [0xbb,0x2e,0xa6,0x00]
+
+wadd t1, t5, t5
+// CHECK-ASM: wadd t1, t5, t5 # encoding: [0xbb,0x26,0xef,0x03]
+
+pwadd.b s0, t3, a4
+// CHECK-ASM: pwadd.b s0, t3, a4 # encoding: [0xbb,0x28,0xee,0x04]
+
+pw2wadd.h t3, t3, a4
+// CHECK-ASM: pw2wadd.h t3, t3, a4 # encoding: [0xbb,0x2c,0xee,0x06]
+
+pwadda.h t1, t3, s2
+// CHECK-ASM: pwadda.h t1, t3, s2 # encoding: [0xbb,0x26,0x2e,0x09]
+
+wadda s2, t1, a0
+// CHECK-ASM: wadda s2, t1, a0 # encoding: [0xbb,0x22,0xa3,0x0a]
+
+pwadda.b a2, a2, s2
+// CHECK-ASM: pwadda.b a2, a2, s2 # encoding: [0xbb,0x2c,0x26,0x0d]
+
+pw2wadda.h t3, t1, t1
+// CHECK-ASM: pw2wadda.h t3, t1, t1 # encoding: [0xbb,0x2c,0x63,0x0e]
+
+pwaddu.h a2, t1, a4
+// CHECK-ASM: pwaddu.h a2, t1, a4 # encoding: [0xbb,0x2c,0xe3,0x10]
+
+waddu t1, s0, t1
+// CHECK-ASM: waddu t1, s0, t1 # encoding: [0xbb,0x26,0x64,0x12]
+
+pwaddu.b s2, a0, t3
+// CHECK-ASM: pwaddu.b s2, a0, t3 # encoding: [0xbb,0x22,0xc5,0x15]
+
+pw2wadd.hx a0, s0, t1
+// CHECK-ASM: pw2wadd.hx a0, s0, t1 # encoding: [0xbb,0x2a,0x64,0x16]
+
+pwaddau.h t1, t5, t3
+// CHECK-ASM: pwaddau.h t1, t5, t3 # encoding: [0xbb,0x26,0xcf,0x19]
+
+waddau t3, s0, s0
+// CHECK-ASM: waddau t3, s0, s0 # encoding: [0xbb,0x2c,0x84,0x1a]
+
+pwaddau.b a0, a0, t1
+// CHECK-ASM: pwaddau.b a0, a0, t1 # encoding: [0xbb,0x2a,0x65,0x1c]
+
+pw2wadda.hx a4, a2, t3
+// CHECK-ASM: pw2wadda.hx a4, a2, t3 # encoding: [0xbb,0x2e,0xc6,0x1f]
+
+pwmul.h s2, t1, a0
+// CHECK-ASM: pwmul.h s2, t1, a0 # encoding: [0xbb,0x22,0xa3,0x20]
+
+wmul t3, a2, t5
+// CHECK-ASM: wmul t3, a2, t5 # encoding: [0xbb,0x2c,0xe6,0x23]
+
+pwmul.b a0, s0, s2
+// CHECK-ASM: pwmul.b a0, s0, s2 # encoding: [0xbb,0x2a,0x24,0x25]
+
+pw2waddu.h s2, s2, a0
+// CHECK-ASM: pw2waddu.h s2, s2, a0 # encoding: [0xbb,0x22,0xa9,0x26]
+
+pwmacc.h s0, a2, a2
+// CHECK-ASM: pwmacc.h s0, a2, a2 # encoding: [0xbb,0x28,0xc6,0x28]
+
+wmacc a0, a2, a2
+// CHECK-ASM: wmacc a0, a2, a2 # encoding: [0xbb,0x2a,0xc6,0x2a]
+
+pm2waddau.h t5, a2, t5
+// CHECK-ASM: pm2waddau.h t5, a2, t5 # encoding: [0xbb,0x2e,0xe6,0x2f]
+
+pwmulu.h a2, a0, t5
+// CHECK-ASM: pwmulu.h a2, a0, t5 # encoding: [0xbb,0x2c,0xe5,0x31]
+
+wmulu s2, a0, t3
+// CHECK-ASM: wmulu s2, a0, t3 # encoding: [0xbb,0x22,0xc5,0x33]
+
+pwmulu.b a2, a4, a2
+// CHECK-ASM: pwmulu.b a2, a4, a2 # encoding: [0xbb,0x2c,0xc7,0x34]
+
+pwmaccu.h t1, a4, a2
+// CHECK-ASM: pwmaccu.h t1, a4, a2 # encoding: [0xbb,0x26,0xc7,0x38]
+
+wmaccu a2, a0, t1
+// CHECK-ASM: wmaccu a2, a0, t1 # encoding: [0xbb,0x2c,0x65,0x3a]
+
+pwsub.h s0, s2, t3
+// CHECK-ASM: pwsub.h s0, s2, t3 # encoding: [0xbb,0x28,0xc9,0x41]
+
+wsub t1, s2, a4
+// CHECK-ASM: wsub t1, s2, a4 # encoding: [0xbb,0x26,0xe9,0x42]
+
+pwsub.b a4, s2, s2
+// CHECK-ASM: pwsub.b a4, s2, s2 # encoding: [0xbb,0x2e,0x29,0x45]
+
+pw2wsub.h t1, a4, t3
+// CHECK-ASM: pw2wsub.h t1, a4, t3 # encoding: [0xbb,0x26,0xc7,0x47]
+
+pwsuba.h a4, t5, t1
+// CHECK-ASM: pwsuba.h a4, t5, t1 # encoding: [0xbb,0x2e,0x6f,0x48]
+
+wsuba a0, s0, t5
+// CHECK-ASM: wsuba a0, s0, t5 # encoding: [0xbb,0x2a,0xe4,0x4b]
+
+pwsuba.b a0, a2, s2
+// CHECK-ASM: pwsuba.b a0, a2, s2 # encoding: [0xbb,0x2a,0x26,0x4d]
+
+pw2wsuba.h t5, s0, s2
+// CHECK-ASM: pw2wsuba.h t5, s0, s2 # encoding: [0xbb,0x2e,0x24,0x4f]
+
+pwsubu.h t5, s2, a2
+// CHECK-ASM: pwsubu.h t5, s2, a2 # encoding: [0xbb,0x2e,0xc9,0x50]
+
+wsubu a2, a4, a0
+// CHECK-ASM: wsubu a2, a4, a0 # encoding: [0xbb,0x2c,0xa7,0x52]
+
+pwsubu.b a2, a2, t5
+// CHECK-ASM: pwsubu.b a2, a2, t5 # encoding: [0xbb,0x2c,0xe6,0x55]
+
+pw2wsub.hx t5, a2, a0
+// CHECK-ASM: pw2wsub.hx t5, a2, a0 # encoding: [0xbb,0x2e,0xa6,0x56]
+
+pwsubau.h t5, s0, s2
+// CHECK-ASM: pwsubau.h t5, s0, s2 # encoding: [0xbb,0x2e,0x24,0x59]
+
+wsubau t5, a0, t1
+// CHECK-ASM: wsubau t5, a0, t1 # encoding: [0xbb,0x2e,0x65,0x5a]
+
+pwsubau.b a2, a0, a0
+// CHECK-ASM: pwsubau.b a2, a0, a0 # encoding: [0xbb,0x2c,0xa5,0x5c]
+
+pw2wsuba.hx a2, a2, t5
+// CHECK-ASM: pw2wsuba.hx a2, a2, t5 # encoding: [0xbb,0x2c,0xe6,0x5f]
+
+pwmulsu.h s0, a2, t3
+// CHECK-ASM: pwmulsu.h s0, a2, t3 # encoding: [0xbb,0x28,0xc6,0x61]
+
+wmulsu a0, s2, a0
+// CHECK-ASM: wmulsu a0, s2, a0 # encoding: [0xbb,0x2a,0xa9,0x62]
+
+pwmulsu.b t3, t5, t1
+// CHECK-ASM: pwmulsu.b t3, t5, t1 # encoding: [0xbb,0x2c,0x6f,0x64]
+
+pm2waddsu.h a4, a2, s2
+// CHECK-ASM: pm2waddsu.h a4, a2, s2 # encoding: [0xbb,0x2e,0x26,0x67]
+
+pwmaccsu.h t5, s2, a2
+// CHECK-ASM: pwmaccsu.h t5, s2, a2 # encoding: [0xbb,0x2e,0xc9,0x68]
+
+wmaccsu t3, s0, a4
+// CHECK-ASM: wmaccsu t3, s0, a4 # encoding: [0xbb,0x2c,0xe4,0x6a]
+
+pm2waddasu.h t3, t5, a0
+// CHECK-ASM: pm2waddasu.h t3, t5, a0 # encoding: [0xbb,0x2c,0xaf,0x6e]
+
+pmqwacc.h t5, t5, a2
+// CHECK-ASM: pmqwacc.h t5, t5, a2 # encoding: [0xbb,0x2e,0xcf,0x78]
+
+pmqwacc s2, a4, a2
+// CHECK-ASM: pmqwacc s2, a4, a2 # encoding: [0xbb,0x22,0xc7,0x7a]
+
+pmqrwacc.h a4, t3, a4
+// CHECK-ASM: pmqrwacc.h a4, t3, a4 # encoding: [0xbb,0x2e,0xee,0x7c]
+
+pmqrwacc s0, s2, t5
+// CHECK-ASM: pmqrwacc s0, s2, t5 # encoding: [0xbb,0x28,0xe9,0x7f]
+
+predsum.dhs s0, t3, a0
+// CHECK-ASM: predsum.dhs s0, t3, a0 # encoding: [0x1b,0x44,0xac,0x08]
+
+predsum.dbs a2, s0, t3
+// CHECK-ASM: predsum.dbs a2, s0, t3 # encoding: [0x1b,0x46,0xc8,0x0d]
+
+predsumu.dhs a2, a2, t3
+// CHECK-ASM: predsumu.dhs a2, a2, t3 # encoding: [0x1b,0x46,0xcc,0x39]
+
+predsumu.dbs a2, a0, s0
+// CHECK-ASM: predsumu.dbs a2, a0, s0 # encoding: [0x1b,0x46,0x8a,0x3c]
+
+pnsrli.b a2, a0
+// CHECK-ASM: pnsrli.b a2, a0 # encoding: [0x1b,0xc6,0x0a,0x01]
+
+pnsrli.h a0, t3
+// CHECK-ASM: pnsrli.h a0, t3 # encoding: [0x1b,0xc5,0x0c,0x02]
+
+nsrli a2, a0
+// CHECK-ASM: nsrli a2, a0 # encoding: [0x1b,0xc6,0x0a,0x04]
+
+pnclipiu.b a4, t3
+// CHECK-ASM: pnclipiu.b a4, t3 # encoding: [0x1b,0xc7,0x0c,0x21]
+
+pnclipiu.h t1, s2
+// CHECK-ASM: pnclipiu.h t1, s2 # encoding: [0x1b,0xc3,0x02,0x22]
+
+nclipiu s0, a2
+// CHECK-ASM: nclipiu s0, a2 # encoding: [0x1b,0xc4,0x0c,0x24]
+
+pnclipriu.b s2, s0
+// CHECK-ASM: pnclipriu.b s2, s0 # encoding: [0x1b,0xc9,0x08,0x31]
+
+pnclipriu.h s0, s0
+// CHECK-ASM: pnclipriu.h s0, s0 # encoding: [0x1b,0xc4,0x08,0x32]
+
+nclipriu t3, t3
+// CHECK-ASM: nclipriu t3, t3 # encoding: [0x1b,0xce,0x0c,0x34]
+
+pnsrai.b s2, t5
+// CHECK-ASM: pnsrai.b s2, t5 # encoding: [0x1b,0xc9,0x0e,0x41]
+
+pnsrai.h s0, a0
+// CHECK-ASM: pnsrai.h s0, a0 # encoding: [0x1b,0xc4,0x0a,0x42]
+
+nsrai a4, t3
+// CHECK-ASM: nsrai a4, t3 # encoding: [0x1b,0xc7,0x0c,0x44]
+
+pnsari.b t5, t5
+// CHECK-ASM: pnsari.b t5, t5 # encoding: [0x1b,0xcf,0x0e,0x51]
+
+pnsari.h t1, a4
+// CHECK-ASM: pnsari.h t1, a4 # encoding: [0x1b,0xc3,0x0e,0x52]
+
+nsari s0, t1
+// CHECK-ASM: nsari s0, t1 # encoding: [0x1b,0xc4,0x06,0x54]
+
+pnclipi.b t1, a4
+// CHECK-ASM: pnclipi.b t1, a4 # encoding: [0x1b,0xc3,0x0e,0x61]
+
+pnclipi.h a0, a4
+// CHECK-ASM: pnclipi.h a0, a4 # encoding: [0x1b,0xc5,0x0e,0x62]
+
+nclipi t5, t5
+// CHECK-ASM: nclipi t5, t5 # encoding: [0x1b,0xcf,0x0e,0x64]
+
+pnclipri.b a0, s0
+// CHECK-ASM: pnclipri.b a0, s0 # encoding: [0x1b,0xc5,0x08,0x71]
+
+pnclipri.h s2, t5
+// CHECK-ASM: pnclipri.h s2, t5 # encoding: [0x1b,0xc9,0x0e,0x72]
+
+nclipri t3, s0
+// CHECK-ASM: nclipri t3, s0 # encoding: [0x1b,0xce,0x08,0x74]
+
+pnsrl.bs t3, s0, a4
+// CHECK-ASM: pnsrl.bs t3, s0, a4 # encoding: [0x1b,0xce,0xe8,0x08]
+
+pnsrl.hs a2, t1, a4
+// CHECK-ASM: pnsrl.hs a2, t1, a4 # encoding: [0x1b,0xc6,0xe6,0x0a]
+
+nsrl a2, a2, a0
+// CHECK-ASM: nsrl a2, a2, a0 # encoding: [0x1b,0xc6,0xac,0x0e]
+
+pnclipu.bs a4, t5, a2
+// CHECK-ASM: pnclipu.bs a4, t5, a2 # encoding: [0x1b,0xc7,0xce,0x28]
+
+pnclipu.hs t1, a2, a4
+// CHECK-ASM: pnclipu.hs t1, a2, a4 # encoding: [0x1b,0xc3,0xec,0x2a]
+
+nclipu t5, s2, t1
+// CHECK-ASM: nclipu t5, s2, t1 # encoding: [0x1b,0xcf,0x62,0x2e]
+
+pnclipru.bs t5, s2, s2
+// CHECK-ASM: pnclipru.bs t5, s2, s2 # encoding: [0x1b,0xcf,0x22,0x39]
+
+pnclipru.hs t5, s2, a0
+// CHECK-ASM: pnclipru.hs t5, s2, a0 # encoding: [0x1b,0xcf,0xa2,0x3a]
+
+nclipru a4, t5, t5
+// CHECK-ASM: nclipru a4, t5, t5 # encoding: [0x1b,0xc7,0xee,0x3f]
+
+pnsra.bs a4, t1, a4
+// CHECK-ASM: pnsra.bs a4, t1, a4 # encoding: [0x1b,0xc7,0xe6,0x48]
+
+pnsra.hs s0, s2, t3
+// CHECK-ASM: pnsra.hs s0, s2, t3 # encoding: [0x1b,0xc4,0xc2,0x4b]
+
+nsra t1, s0, a4
+// CHECK-ASM: nsra t1, s0, a4 # encoding: [0x1b,0xc3,0xe8,0x4e]
+
+pnsrar.bs a2, s0, a4
+// CHECK-ASM: pnsrar.bs a2, s0, a4 # encoding: [0x1b,0xc6,0xe8,0x58]
+
+pnsrar.hs s0, a4, a0
+// CHECK-ASM: pnsrar.hs s0, a4, a0 # encoding: [0x1b,0xc4,0xae,0x5a]
+
+nsrar a4, a4, s0
+// CHECK-ASM: nsrar a4, a4, s0 # encoding: [0x1b,0xc7,0x8e,0x5e]
+
+pnclip.bs t1, t5, t3
+// CHECK-ASM: pnclip.bs t1, t5, t3 # encoding: [0x1b,0xc3,0xce,0x69]
+
+pnclip.hs a0, a2, a0
+// CHECK-ASM: pnclip.hs a0, a2, a0 # encoding: [0x1b,0xc5,0xac,0x6a]
+
+nclip t3, t5, t3
+// CHECK-ASM: nclip t3, t5, t3 # encoding: [0x1b,0xce,0xce,0x6f]
+
+pnclipr.bs t1, a2, a0
+// CHECK-ASM: pnclipr.bs t1, a2, a0 # encoding: [0x1b,0xc3,0xac,0x78]
+
+pnclipr.hs a4, s2, t3
+// CHECK-ASM: pnclipr.hs a4, s2, t3 # encoding: [0x1b,0xc7,0xc2,0x7b]
+
+nclipr t1, t5, a2
+// CHECK-ASM: nclipr t1, t5, a2 # encoding: [0x1b,0xc3,0xce,0x7e]
+
+pslli.db a0, s2
+// CHECK-ASM: pslli.db a0, s2 # encoding: [0x1b,0x4a,0x82,0x00]
+
+pslli.dh t3, t1
+// CHECK-ASM: pslli.dh t3, t1 # encoding: [0x1b,0x4c,0x06,0x01]
+
+pslli.dw a4, t3
+// CHECK-ASM: pslli.dw a4, t3 # encoding: [0x1b,0x4e,0x0c,0x02]
+
+psslai.dh t1, a4
+// CHECK-ASM: psslai.dh t1, a4 # encoding: [0x1b,0x46,0x0e,0x51]
+
+psslai.dw a0, t3
+// CHECK-ASM: psslai.dw a0, t3 # encoding: [0x1b,0x4a,0x0c,0x52]
+
+psext.dh.b t1, t5
----------------
topperc wrote:
If I disassembled this correctly, the `rdp` field has a value of 0b0110. `t1` is register x6, but if we're supposed to encode pairs, there's a missing divide by 2.
I expect if you test disassembly you'll see that registers x16-x31 don't round trip correctly.
https://github.com/llvm/llvm-project/pull/123271
More information about the llvm-commits
mailing list