diff options
author | Hao Liu <Hao.Liu@arm.com> | 2013-09-04 09:28:24 +0000 |
---|---|---|
committer | Hao Liu <Hao.Liu@arm.com> | 2013-09-04 09:28:24 +0000 |
commit | 19fdc268c316b3b0bdcb2b558449819f4f402d6a (patch) | |
tree | 7e600b5667c314ab009690568492a55b06b90c1b /test/MC/Disassembler | |
parent | 886631cc2790cc0143966069e613d933914724b4 (diff) | |
download | llvm-19fdc268c316b3b0bdcb2b558449819f4f402d6a.tar.gz llvm-19fdc268c316b3b0bdcb2b558449819f4f402d6a.tar.bz2 llvm-19fdc268c316b3b0bdcb2b558449819f4f402d6a.tar.xz |
Inplement aarch64 neon instructions in AdvSIMD(shift). About 24 shift instructions:
sshr,ushr,ssra,usra,srshr,urshr,srsra,ursra,sri,shl,sli,sqshlu,sqshl,uqshl,shrn,sqrshrun,sqshrn,uqshr,sqrshrn,uqrshrn,sshll,ushll
and 4 convert instructions:
scvtf,ucvtf,fcvtzs,fcvtzu
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189925 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC/Disassembler')
-rw-r--r-- | test/MC/Disassembler/AArch64/neon-instructions.txt | 395 |
1 files changed, 395 insertions, 0 deletions
diff --git a/test/MC/Disassembler/AArch64/neon-instructions.txt b/test/MC/Disassembler/AArch64/neon-instructions.txt index e599abaacd..a7029b2140 100644 --- a/test/MC/Disassembler/AArch64/neon-instructions.txt +++ b/test/MC/Disassembler/AArch64/neon-instructions.txt @@ -694,3 +694,398 @@ 0x20 0xa4 0x13 0x4f 0x20 0xa4 0x13 0x2f 0x20 0xa4 0x0b 0x6f + +#----------------------------------------------------------------------------- +#Integer shift right (Signed) +#----------------------------------------------------------------------------- +# CHECK: sshr v0.8b, v1.8b, #3 +# CHECK: sshr v0.4h, v1.4h, #3 +# CHECK: sshr v0.2s, v1.2s, #3 +# CHECK: sshr v0.16b, v1.16b, #3 +# CHECK: sshr v0.8h, v1.8h, #3 +# CHECK: sshr v0.4s, v1.4s, #3 +# CHECK: sshr v0.2d, v1.2d, #3 +0x20,0x04,0x0d,0x0f +0x20,0x04,0x1d,0x0f +0x20,0x04,0x3d,0x0f +0x20,0x04,0x0d,0x4f +0x20,0x04,0x1d,0x4f +0x20,0x04,0x3d,0x4f +0x20,0x04,0x7d,0x4f + +#----------------------------------------------------------------------------- +#Integer shift right (Unsigned) +#----------------------------------------------------------------------------- +# CHECK: ushr v0.8b, v1.8b, #3 +# CHECK: ushr v0.4h, v1.4h, #3 +# CHECK: ushr v0.2s, v1.2s, #3 +# CHECK: ushr v0.16b, v1.16b, #3 +# CHECK: ushr v0.8h, v1.8h, #3 +# CHECK: ushr v0.4s, v1.4s, #3 +# CHECK: ushr v0.2d, v1.2d, #3 +0x20,0x04,0x0d,0x2f +0x20,0x04,0x1d,0x2f +0x20,0x04,0x3d,0x2f +0x20,0x04,0x0d,0x6f +0x20,0x04,0x1d,0x6f +0x20,0x04,0x3d,0x6f +0x20,0x04,0x7d,0x6f + +#----------------------------------------------------------------------------- +#Integer shift right and accumulate (Signed) +#----------------------------------------------------------------------------- +# CHECK: ssra v0.8b, v1.8b, #3 +# CHECK: ssra v0.4h, v1.4h, #3 +# CHECK: ssra v0.2s, v1.2s, #3 +# CHECK: ssra v0.16b, v1.16b, #3 +# CHECK: ssra v0.8h, v1.8h, #3 +# CHECK: ssra v0.4s, v1.4s, #3 +# CHECK: ssra v0.2d, v1.2d, #3 +0x20,0x14,0x0d,0x0f +0x20,0x14,0x1d,0x0f +0x20,0x14,0x3d,0x0f +0x20,0x14,0x0d,0x4f +0x20,0x14,0x1d,0x4f +0x20,0x14,0x3d,0x4f +0x20,0x14,0x7d,0x4f + +#----------------------------------------------------------------------------- +#Integer shift right and accumulate (Unsigned) +#----------------------------------------------------------------------------- +# CHECK: usra v0.8b, v1.8b, #3 +# CHECK: usra v0.4h, v1.4h, #3 +# CHECK: usra v0.2s, v1.2s, #3 +# CHECK: usra v0.16b, v1.16b, #3 +# CHECK: usra v0.8h, v1.8h, #3 +# CHECK: usra v0.4s, v1.4s, #3 +# CHECK: usra v0.2d, v1.2d, #3 +0x20,0x14,0x0d,0x2f +0x20,0x14,0x1d,0x2f +0x20,0x14,0x3d,0x2f +0x20,0x14,0x0d,0x6f +0x20,0x14,0x1d,0x6f +0x20,0x14,0x3d,0x6f +0x20,0x14,0x7d,0x6f + +#----------------------------------------------------------------------------- +#Integer rounding shift right (Signed) +#----------------------------------------------------------------------------- +# CHECK: srshr v0.8b, v1.8b, #3 +# CHECK: srshr v0.4h, v1.4h, #3 +# CHECK: srshr v0.2s, v1.2s, #3 +# CHECK: srshr v0.16b, v1.16b, #3 +# CHECK: srshr v0.8h, v1.8h, #3 +# CHECK: srshr v0.4s, v1.4s, #3 +# CHECK: srshr v0.2d, v1.2d, #3 +0x20,0x24,0x0d,0x0f +0x20,0x24,0x1d,0x0f +0x20,0x24,0x3d,0x0f +0x20,0x24,0x0d,0x4f +0x20,0x24,0x1d,0x4f +0x20,0x24,0x3d,0x4f +0x20,0x24,0x7d,0x4f + +#----------------------------------------------------------------------------- +#Integer rounding shift right (Unsigned) +#----------------------------------------------------------------------------- +# CHECK: urshr v0.8b, v1.8b, #3 +# CHECK: urshr v0.4h, v1.4h, #3 +# CHECK: urshr v0.2s, v1.2s, #3 +# CHECK: urshr v0.16b, v1.16b, #3 +# CHECK: urshr v0.8h, v1.8h, #3 +# CHECK: urshr v0.4s, v1.4s, #3 +# CHECK: urshr v0.2d, v1.2d, #3 +0x20,0x24,0x0d,0x2f +0x20,0x24,0x1d,0x2f +0x20,0x24,0x3d,0x2f +0x20,0x24,0x0d,0x6f +0x20,0x24,0x1d,0x6f +0x20,0x24,0x3d,0x6f +0x20,0x24,0x7d,0x6f + +#----------------------------------------------------------------------------- +#Integer rounding shift right and accumulate (Signed) +#----------------------------------------------------------------------------- +# CHECK: srsra v0.8b, v1.8b, #3 +# CHECK: srsra v0.4h, v1.4h, #3 +# CHECK: srsra v0.2s, v1.2s, #3 +# CHECK: srsra v0.16b, v1.16b, #3 +# CHECK: srsra v0.8h, v1.8h, #3 +# CHECK: srsra v0.4s, v1.4s, #3 +# CHECK: srsra v0.2d, v1.2d, #3 +0x20,0x34,0x0d,0x0f +0x20,0x34,0x1d,0x0f +0x20,0x34,0x3d,0x0f +0x20,0x34,0x0d,0x4f +0x20,0x34,0x1d,0x4f +0x20,0x34,0x3d,0x4f +0x20,0x34,0x7d,0x4f + +#----------------------------------------------------------------------------- +#Integer rounding shift right and accumulate (Unsigned) +#----------------------------------------------------------------------------- +# CHECK: ursra v0.8b, v1.8b, #3 +# CHECK: ursra v0.4h, v1.4h, #3 +# CHECK: ursra v0.2s, v1.2s, #3 +# CHECK: ursra v0.16b, v1.16b, #3 +# CHECK: ursra v0.8h, v1.8h, #3 +# CHECK: ursra v0.4s, v1.4s, #3 +# CHECK: ursra v0.2d, v1.2d, #3 +0x20,0x34,0x0d,0x2f +0x20,0x34,0x1d,0x2f +0x20,0x34,0x3d,0x2f +0x20,0x34,0x0d,0x6f +0x20,0x34,0x1d,0x6f +0x20,0x34,0x3d,0x6f +0x20,0x34,0x7d,0x6f + +#----------------------------------------------------------------------------- +#Integer shift right and insert +#----------------------------------------------------------------------------- +# CHECK: sri v0.8b, v1.8b, #3 +# CHECK: sri v0.4h, v1.4h, #3 +# CHECK: sri v0.2s, v1.2s, #3 +# CHECK: sri v0.16b, v1.16b, #3 +# CHECK: sri v0.8h, v1.8h, #3 +# CHECK: sri v0.4s, v1.4s, #3 +# CHECK: sri v0.2d, v1.2d, #3 +0x20,0x44,0x0d,0x2f +0x20,0x44,0x1d,0x2f +0x20,0x44,0x3d,0x2f +0x20,0x44,0x0d,0x6f +0x20,0x44,0x1d,0x6f +0x20,0x44,0x3d,0x6f +0x20,0x44,0x7d,0x6f + +#----------------------------------------------------------------------------- +#Integer shift left and insert +#----------------------------------------------------------------------------- +# CHECK: sli v0.8b, v1.8b, #3 +# CHECK: sli v0.4h, v1.4h, #3 +# CHECK: sli v0.2s, v1.2s, #3 +# CHECK: sli v0.16b, v1.16b, #3 +# CHECK: sli v0.8h, v1.8h, #3 +# CHECK: sli v0.4s, v1.4s, #3 +# CHECK: sli v0.2d, v1.2d, #3 +0x20,0x54,0x0b,0x2f +0x20,0x54,0x13,0x2f +0x20,0x54,0x23,0x2f +0x20,0x54,0x0b,0x6f +0x20,0x54,0x13,0x6f +0x20,0x54,0x23,0x6f +0x20,0x54,0x43,0x6f + +#----------------------------------------------------------------------------- +#Integer saturating shift left unsigned +#----------------------------------------------------------------------------- +# CHECK: sqshlu v0.8b, v1.8b, #3 +# CHECK: sqshlu v0.4h, v1.4h, #3 +# CHECK: sqshlu v0.2s, v1.2s, #3 +# CHECK: sqshlu v0.16b, v1.16b, #3 +# CHECK: sqshlu v0.8h, v1.8h, #3 +# CHECK: sqshlu v0.4s, v1.4s, #3 +# CHECK: sqshlu v0.2d, v1.2d, #3 +0x20,0x64,0x0b,0x2f +0x20,0x64,0x13,0x2f +0x20,0x64,0x23,0x2f +0x20,0x64,0x0b,0x6f +0x20,0x64,0x13,0x6f +0x20,0x64,0x23,0x6f +0x20,0x64,0x43,0x6f + +#----------------------------------------------------------------------------- +#Integer saturating shift left (Signed) +#----------------------------------------------------------------------------- +# CHECK: sqshl v0.8b, v1.8b, #3 +# CHECK: sqshl v0.4h, v1.4h, #3 +# CHECK: sqshl v0.2s, v1.2s, #3 +# CHECK: sqshl v0.16b, v1.16b, #3 +# CHECK: sqshl v0.8h, v1.8h, #3 +# CHECK: sqshl v0.4s, v1.4s, #3 +# CHECK: sqshl v0.2d, v1.2d, #3 +0x20,0x74,0x0b,0x0f +0x20,0x74,0x13,0x0f +0x20,0x74,0x23,0x0f +0x20,0x74,0x0b,0x4f +0x20,0x74,0x13,0x4f +0x20,0x74,0x23,0x4f +0x20,0x74,0x43,0x4f + +#----------------------------------------------------------------------------- +#Integer saturating shift left (Unsigned) +#----------------------------------------------------------------------------- +# CHECK: uqshl v0.8b, v1.8b, #3 +# CHECK: uqshl v0.4h, v1.4h, #3 +# CHECK: uqshl v0.2s, v1.2s, #3 +# CHECK: uqshl v0.16b, v1.16b, #3 +# CHECK: uqshl v0.8h, v1.8h, #3 +# CHECK: uqshl v0.4s, v1.4s, #3 +# CHECK: uqshl v0.2d, v1.2d, #3 +0x20,0x74,0x0b,0x2f +0x20,0x74,0x13,0x2f +0x20,0x74,0x23,0x2f +0x20,0x74,0x0b,0x6f +0x20,0x74,0x13,0x6f +0x20,0x74,0x23,0x6f +0x20,0x74,0x43,0x6f + +#----------------------------------------------------------------------------- +#Integer shift right narrow +#----------------------------------------------------------------------------- +# CHECK: shrn v0.8b, v1.8h, #3 +# CHECK: shrn v0.4h, v1.4s, #3 +# CHECK: shrn v0.2s, v1.2d, #3 +# CHECK: shrn2 v0.16b, v1.8h, #3 +# CHECK: shrn2 v0.8h, v1.4s, #3 +# CHECK: shrn2 v0.4s, v1.2d, #3 +0x20,0x84,0x0d,0x0f +0x20,0x84,0x1d,0x0f +0x20,0x84,0x3d,0x0f +0x20,0x84,0x0d,0x4f +0x20,0x84,0x1d,0x4f +0x20,0x84,0x3d,0x4f + +#----------------------------------------------------------------------------- +#Integer saturating shift right unsigned narrow (Signed) +#----------------------------------------------------------------------------- +# CHECK: sqshrun v0.8b, v1.8h, #3 +# CHECK: sqshrun v0.4h, v1.4s, #3 +# CHECK: sqshrun v0.2s, v1.2d, #3 +# CHECK: sqshrun2 v0.16b, v1.8h, #3 +# CHECK: sqshrun2 v0.8h, v1.4s, #3 +# CHECK: sqshrun2 v0.4s, v1.2d, #3 +0x20,0x84,0x0d,0x2f +0x20,0x84,0x1d,0x2f +0x20,0x84,0x3d,0x2f +0x20,0x84,0x0d,0x6f +0x20,0x84,0x1d,0x6f +0x20,0x84,0x3d,0x6f + +#----------------------------------------------------------------------------- +#Integer rounding shift right narrow +#----------------------------------------------------------------------------- +# CHECK: rshrn v0.8b, v1.8h, #3 +# CHECK: rshrn v0.4h, v1.4s, #3 +# CHECK: rshrn v0.2s, v1.2d, #3 +# CHECK: rshrn2 v0.16b, v1.8h, #3 +# CHECK: rshrn2 v0.8h, v1.4s, #3 +# CHECK: rshrn2 v0.4s, v1.2d, #3 +0x20,0x8c,0x0d,0x0f +0x20,0x8c,0x1d,0x0f +0x20,0x8c,0x3d,0x0f +0x20,0x8c,0x0d,0x4f +0x20,0x8c,0x1d,0x4f +0x20,0x8c,0x3d,0x4f + +#----------------------------------------------------------------------------- +#Integer saturating shift right rounded unsigned narrow (Signed) +#----------------------------------------------------------------------------- +# CHECK: sqrshrun v0.8b, v1.8h, #3 +# CHECK: sqrshrun v0.4h, v1.4s, #3 +# CHECK: sqrshrun v0.2s, v1.2d, #3 +# CHECK: sqrshrun2 v0.16b, v1.8h, #3 +# CHECK: sqrshrun2 v0.8h, v1.4s, #3 +# CHECK: sqrshrun2 v0.4s, v1.2d, #3 +0x20,0x8c,0x0d,0x2f +0x20,0x8c,0x1d,0x2f +0x20,0x8c,0x3d,0x2f +0x20,0x8c,0x0d,0x6f +0x20,0x8c,0x1d,0x6f +0x20,0x8c,0x3d,0x6f + +#----------------------------------------------------------------------------- +#Integer saturating shift right narrow (Signed) +#----------------------------------------------------------------------------- +# CHECK: sqshrn v0.8b, v1.8h, #3 +# CHECK: sqshrn v0.4h, v1.4s, #3 +# CHECK: sqshrn v0.2s, v1.2d, #3 +# CHECK: sqshrn2 v0.16b, v1.8h, #3 +# CHECK: sqshrn2 v0.8h, v1.4s, #3 +# CHECK: sqshrn2 v0.4s, v1.2d, #3 +0x20,0x94,0x0d,0x0f +0x20,0x94,0x1d,0x0f +0x20,0x94,0x3d,0x0f +0x20,0x94,0x0d,0x4f +0x20,0x94,0x1d,0x4f +0x20,0x94,0x3d,0x4f + +#----------------------------------------------------------------------------- +#Integer saturating shift right narrow (Unsigned) +#----------------------------------------------------------------------------- +# CHECK: uqshrn v0.8b, v1.8h, #3 +# CHECK: uqshrn v0.4h, v1.4s, #3 +# CHECK: uqshrn v0.2s, v1.2d, #3 +# CHECK: uqshrn2 v0.16b, v1.8h, #3 +# CHECK: uqshrn2 v0.8h, v1.4s, #3 +# CHECK: uqshrn2 v0.4s, v1.2d, #3 +0x20,0x94,0x0d,0x2f +0x20,0x94,0x1d,0x2f +0x20,0x94,0x3d,0x2f +0x20,0x94,0x0d,0x6f +0x20,0x94,0x1d,0x6f +0x20,0x94,0x3d,0x6f + +#----------------------------------------------------------------------------- +#Integer saturating shift right rounded narrow (Signed) +#----------------------------------------------------------------------------- +# CHECK: sqrshrn v0.8b, v1.8h, #3 +# CHECK: sqrshrn v0.4h, v1.4s, #3 +# CHECK: sqrshrn v0.2s, v1.2d, #3 +# CHECK: sqrshrn2 v0.16b, v1.8h, #3 +# CHECK: sqrshrn2 v0.8h, v1.4s, #3 +# CHECK: sqrshrn2 v0.4s, v1.2d, #3 +0x20,0x9c,0x0d,0x0f +0x20,0x9c,0x1d,0x0f +0x20,0x9c,0x3d,0x0f +0x20,0x9c,0x0d,0x4f +0x20,0x9c,0x1d,0x4f +0x20,0x9c,0x3d,0x4f + +#----------------------------------------------------------------------------- +#Integer saturating shift right rounded narrow (Unsigned) +#----------------------------------------------------------------------------- +# CHECK: uqrshrn v0.8b, v1.8h, #3 +# CHECK: uqrshrn v0.4h, v1.4s, #3 +# CHECK: uqrshrn v0.2s, v1.2d, #3 +# CHECK: uqrshrn2 v0.16b, v1.8h, #3 +# CHECK: uqrshrn2 v0.8h, v1.4s, #3 +# CHECK: uqrshrn2 v0.4s, v1.2d, #3 +0x20,0x9c,0x0d,0x2f +0x20,0x9c,0x1d,0x2f +0x20,0x9c,0x3d,0x2f +0x20,0x9c,0x0d,0x6f +0x20,0x9c,0x1d,0x6f +0x20,0x9c,0x3d,0x6f + +#----------------------------------------------------------------------------- +#Fixed-point convert to floating-point +#----------------------------------------------------------------------------- +# CHECK: scvtf v0.2s, v1.2s, #3 +# CHECK: scvtf v0.4s, v1.4s, #3 +# CHECK: scvtf v0.2d, v1.2d, #3 +# CHECK: ucvtf v0.2s, v1.2s, #3 +# CHECK: ucvtf v0.4s, v1.4s, #3 +# CHECK: ucvtf v0.2d, v1.2d, #3 + +0x20,0xe4,0x3d,0x0f +0x20,0xe4,0x3d,0x4f +0x20,0xe4,0x7d,0x4f +0x20,0xe4,0x3d,0x2f +0x20,0xe4,0x3d,0x6f +0x20,0xe4,0x7d,0x6f + +#----------------------------------------------------------------------------- +#Floating-point convert to fixed-point +#----------------------------------------------------------------------------- +# CHECK: fcvtzs v0.2s, v1.2s, #3 +# CHECK: fcvtzs v0.4s, v1.4s, #3 +# CHECK: fcvtzs v0.2d, v1.2d, #3 +# CHECK: fcvtzu v0.2s, v1.2s, #3 +# CHECK: fcvtzu v0.4s, v1.4s, #3 +# CHECK: fcvtzu v0.2d, v1.2d, #3 +0x20,0xfc,0x3d,0x0f +0x20,0xfc,0x3d,0x4f +0x20,0xfc,0x7d,0x4f +0x20,0xfc,0x3d,0x2f +0x20,0xfc,0x3d,0x6f +0x20,0xfc,0x7d,0x6f |