mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 04:32:44 +01:00
3a4865dc0a
Add VFMK/VFMS/VFMF/ANDM/ORM/XORM/EQVM/NNDM/NEGM/PCVM/LZVM/TOVM isntructions. Add regression tests too. Also add new patterns to parse VFMK/VFMS/VFMF mnemonics. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D90297
277 lines
9.5 KiB
ArmAsm
277 lines
9.5 KiB
ArmAsm
# RUN: llvm-mc -triple=ve --show-encoding < %s \
|
|
# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
|
|
# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
|
|
# RUN: | FileCheck %s --check-prefixes=CHECK-INST
|
|
|
|
# CHECK-INST: vfmk.d.at %vm11
|
|
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x0b,0x00,0x00,0x00,0xb6]
|
|
vfmk.d %vm11
|
|
|
|
# CHECK-INST: vfmk.d.at %vm11
|
|
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x0b,0x00,0x00,0x00,0xb6]
|
|
vfmk.d.at %vm11
|
|
|
|
# CHECK-INST: vfmk.d.af %vm1, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0x00,0x00,0x01,0x00,0x00,0x0f,0xb6]
|
|
vfmk.d.af %vm1, %vm15
|
|
|
|
# CHECK-INST: vfmk.d.gt %vm12, %v22
|
|
# CHECK-ENCODING: encoding: [0x00,0x16,0x01,0x0c,0x00,0x00,0x00,0xb6]
|
|
vfmk.d.gt %vm12, %v22
|
|
|
|
# CHECK-INST: vfmk.d.lt %vm12, %vix, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0xff,0x02,0x0c,0x00,0x00,0x0f,0xb6]
|
|
vfmk.d.lt %vm12, %vix, %vm15
|
|
|
|
# CHECK-INST: vfmk.d.ne %vm11, %v32
|
|
# CHECK-ENCODING: encoding: [0x00,0x20,0x03,0x0b,0x00,0x00,0x00,0xb6]
|
|
vfmk.d.ne %vm11, %v32
|
|
|
|
# CHECK-INST: vfmk.d.eq %vm1, %vix, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0xff,0x04,0x01,0x00,0x00,0x0f,0xb6]
|
|
vfmk.d.eq %vm1, %vix, %vm15
|
|
|
|
# CHECK-INST: vfmk.d.ge %vm12, %v22
|
|
# CHECK-ENCODING: encoding: [0x00,0x16,0x05,0x0c,0x00,0x00,0x00,0xb6]
|
|
vfmk.d.ge %vm12, %v22
|
|
|
|
# CHECK-INST: vfmk.d.le %vm12, %vix, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0xff,0x06,0x0c,0x00,0x00,0x0f,0xb6]
|
|
vfmk.d.le %vm12, %vix, %vm15
|
|
|
|
# CHECK-INST: vfmk.d.num %vm11, %v45
|
|
# CHECK-ENCODING: encoding: [0x00,0x2d,0x07,0x0b,0x00,0x00,0x00,0xb6]
|
|
vfmk.d.num %vm11, %v45
|
|
|
|
# CHECK-INST: vfmk.d.nan %vm1, %v50, %vm14
|
|
# CHECK-ENCODING: encoding: [0x00,0x32,0x08,0x01,0x00,0x00,0x0e,0xb6]
|
|
vfmk.d.nan %vm1, %v50, %vm14
|
|
|
|
# CHECK-INST: vfmk.d.gtnan %vm12, %v22
|
|
# CHECK-ENCODING: encoding: [0x00,0x16,0x09,0x0c,0x00,0x00,0x00,0xb6]
|
|
vfmk.d.gtnan %vm12, %v22
|
|
|
|
# CHECK-INST: vfmk.d.ltnan %vm12, %vix, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0xff,0x0a,0x0c,0x00,0x00,0x0f,0xb6]
|
|
vfmk.d.ltnan %vm12, %vix, %vm15
|
|
|
|
# CHECK-INST: vfmk.d.nenan %vm11, %v32
|
|
# CHECK-ENCODING: encoding: [0x00,0x20,0x0b,0x0b,0x00,0x00,0x00,0xb6]
|
|
vfmk.d.nenan %vm11, %v32
|
|
|
|
# CHECK-INST: vfmk.d.eqnan %vm1, %vix, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0xff,0x0c,0x01,0x00,0x00,0x0f,0xb6]
|
|
vfmk.d.eqnan %vm1, %vix, %vm15
|
|
|
|
# CHECK-INST: vfmk.d.genan %vm12, %v22
|
|
# CHECK-ENCODING: encoding: [0x00,0x16,0x0d,0x0c,0x00,0x00,0x00,0xb6]
|
|
vfmk.d.genan %vm12, %v22
|
|
|
|
# CHECK-INST: vfmk.d.lenan %vm12, %vix, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0xff,0x0e,0x0c,0x00,0x00,0x0f,0xb6]
|
|
vfmk.d.lenan %vm12, %vix, %vm15
|
|
|
|
# CHECK-INST: pvfmk.s.up.at %vm11
|
|
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x0b,0x00,0x00,0x80,0xb6]
|
|
vfmk.s %vm11
|
|
|
|
# CHECK-INST: pvfmk.s.up.at %vm11
|
|
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x0b,0x00,0x00,0x80,0xb6]
|
|
vfmk.s.at %vm11
|
|
|
|
# CHECK-INST: pvfmk.s.up.af %vm1, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0x00,0x00,0x01,0x00,0x00,0x8f,0xb6]
|
|
vfmk.s.af %vm1, %vm15
|
|
|
|
# CHECK-INST: pvfmk.s.up.gt %vm12, %v22
|
|
# CHECK-ENCODING: encoding: [0x00,0x16,0x01,0x0c,0x00,0x00,0x80,0xb6]
|
|
vfmk.s.gt %vm12, %v22
|
|
|
|
# CHECK-INST: pvfmk.s.up.lt %vm12, %vix, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0xff,0x02,0x0c,0x00,0x00,0x8f,0xb6]
|
|
vfmk.s.lt %vm12, %vix, %vm15
|
|
|
|
# CHECK-INST: pvfmk.s.up.ne %vm11, %v32
|
|
# CHECK-ENCODING: encoding: [0x00,0x20,0x03,0x0b,0x00,0x00,0x80,0xb6]
|
|
vfmk.s.ne %vm11, %v32
|
|
|
|
# CHECK-INST: pvfmk.s.up.eq %vm1, %vix, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0xff,0x04,0x01,0x00,0x00,0x8f,0xb6]
|
|
vfmk.s.eq %vm1, %vix, %vm15
|
|
|
|
# CHECK-INST: pvfmk.s.up.ge %vm12, %v22
|
|
# CHECK-ENCODING: encoding: [0x00,0x16,0x05,0x0c,0x00,0x00,0x80,0xb6]
|
|
vfmk.s.ge %vm12, %v22
|
|
|
|
# CHECK-INST: pvfmk.s.up.le %vm12, %vix, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0xff,0x06,0x0c,0x00,0x00,0x8f,0xb6]
|
|
vfmk.s.le %vm12, %vix, %vm15
|
|
|
|
# CHECK-INST: pvfmk.s.up.num %vm11, %v45
|
|
# CHECK-ENCODING: encoding: [0x00,0x2d,0x07,0x0b,0x00,0x00,0x80,0xb6]
|
|
vfmk.s.num %vm11, %v45
|
|
|
|
# CHECK-INST: pvfmk.s.up.nan %vm1, %v50, %vm14
|
|
# CHECK-ENCODING: encoding: [0x00,0x32,0x08,0x01,0x00,0x00,0x8e,0xb6]
|
|
vfmk.s.nan %vm1, %v50, %vm14
|
|
|
|
# CHECK-INST: pvfmk.s.up.gtnan %vm12, %v22
|
|
# CHECK-ENCODING: encoding: [0x00,0x16,0x09,0x0c,0x00,0x00,0x80,0xb6]
|
|
vfmk.s.gtnan %vm12, %v22
|
|
|
|
# CHECK-INST: pvfmk.s.up.ltnan %vm12, %vix, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0xff,0x0a,0x0c,0x00,0x00,0x8f,0xb6]
|
|
vfmk.s.ltnan %vm12, %vix, %vm15
|
|
|
|
# CHECK-INST: pvfmk.s.up.nenan %vm11, %v32
|
|
# CHECK-ENCODING: encoding: [0x00,0x20,0x0b,0x0b,0x00,0x00,0x80,0xb6]
|
|
vfmk.s.nenan %vm11, %v32
|
|
|
|
# CHECK-INST: pvfmk.s.up.eqnan %vm1, %vix, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0xff,0x0c,0x01,0x00,0x00,0x8f,0xb6]
|
|
vfmk.s.eqnan %vm1, %vix, %vm15
|
|
|
|
# CHECK-INST: pvfmk.s.up.genan %vm12, %v22
|
|
# CHECK-ENCODING: encoding: [0x00,0x16,0x0d,0x0c,0x00,0x00,0x80,0xb6]
|
|
vfmk.s.genan %vm12, %v22
|
|
|
|
# CHECK-INST: pvfmk.s.up.lenan %vm12, %vix, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0xff,0x0e,0x0c,0x00,0x00,0x8f,0xb6]
|
|
vfmk.s.lenan %vm12, %vix, %vm15
|
|
|
|
# CHECK-INST: pvfmk.s.up.at %vm11
|
|
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x0b,0x00,0x00,0x80,0xb6]
|
|
pvfmk.s.up %vm11
|
|
|
|
# CHECK-INST: pvfmk.s.up.at %vm11
|
|
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x0b,0x00,0x00,0x80,0xb6]
|
|
pvfmk.s.up.at %vm11
|
|
|
|
# CHECK-INST: pvfmk.s.up.af %vm1, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0x00,0x00,0x01,0x00,0x00,0x8f,0xb6]
|
|
pvfmk.s.up.af %vm1, %vm15
|
|
|
|
# CHECK-INST: pvfmk.s.up.gt %vm12, %v22
|
|
# CHECK-ENCODING: encoding: [0x00,0x16,0x01,0x0c,0x00,0x00,0x80,0xb6]
|
|
pvfmk.s.up.gt %vm12, %v22
|
|
|
|
# CHECK-INST: pvfmk.s.up.lt %vm12, %vix, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0xff,0x02,0x0c,0x00,0x00,0x8f,0xb6]
|
|
pvfmk.s.up.lt %vm12, %vix, %vm15
|
|
|
|
# CHECK-INST: pvfmk.s.up.ne %vm11, %v32
|
|
# CHECK-ENCODING: encoding: [0x00,0x20,0x03,0x0b,0x00,0x00,0x80,0xb6]
|
|
pvfmk.s.up.ne %vm11, %v32
|
|
|
|
# CHECK-INST: pvfmk.s.up.eq %vm1, %vix, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0xff,0x04,0x01,0x00,0x00,0x8f,0xb6]
|
|
pvfmk.s.up.eq %vm1, %vix, %vm15
|
|
|
|
# CHECK-INST: pvfmk.s.up.ge %vm12, %v22
|
|
# CHECK-ENCODING: encoding: [0x00,0x16,0x05,0x0c,0x00,0x00,0x80,0xb6]
|
|
pvfmk.s.up.ge %vm12, %v22
|
|
|
|
# CHECK-INST: pvfmk.s.up.le %vm12, %vix, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0xff,0x06,0x0c,0x00,0x00,0x8f,0xb6]
|
|
pvfmk.s.up.le %vm12, %vix, %vm15
|
|
|
|
# CHECK-INST: pvfmk.s.up.num %vm11, %v45
|
|
# CHECK-ENCODING: encoding: [0x00,0x2d,0x07,0x0b,0x00,0x00,0x80,0xb6]
|
|
pvfmk.s.up.num %vm11, %v45
|
|
|
|
# CHECK-INST: pvfmk.s.up.nan %vm1, %v50, %vm14
|
|
# CHECK-ENCODING: encoding: [0x00,0x32,0x08,0x01,0x00,0x00,0x8e,0xb6]
|
|
pvfmk.s.up.nan %vm1, %v50, %vm14
|
|
|
|
# CHECK-INST: pvfmk.s.up.gtnan %vm12, %v22
|
|
# CHECK-ENCODING: encoding: [0x00,0x16,0x09,0x0c,0x00,0x00,0x80,0xb6]
|
|
pvfmk.s.up.gtnan %vm12, %v22
|
|
|
|
# CHECK-INST: pvfmk.s.up.ltnan %vm12, %vix, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0xff,0x0a,0x0c,0x00,0x00,0x8f,0xb6]
|
|
pvfmk.s.up.ltnan %vm12, %vix, %vm15
|
|
|
|
# CHECK-INST: pvfmk.s.up.nenan %vm11, %v32
|
|
# CHECK-ENCODING: encoding: [0x00,0x20,0x0b,0x0b,0x00,0x00,0x80,0xb6]
|
|
pvfmk.s.up.nenan %vm11, %v32
|
|
|
|
# CHECK-INST: pvfmk.s.up.eqnan %vm1, %vix, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0xff,0x0c,0x01,0x00,0x00,0x8f,0xb6]
|
|
pvfmk.s.up.eqnan %vm1, %vix, %vm15
|
|
|
|
# CHECK-INST: pvfmk.s.up.genan %vm12, %v22
|
|
# CHECK-ENCODING: encoding: [0x00,0x16,0x0d,0x0c,0x00,0x00,0x80,0xb6]
|
|
pvfmk.s.up.genan %vm12, %v22
|
|
|
|
# CHECK-INST: pvfmk.s.up.lenan %vm12, %vix, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0xff,0x0e,0x0c,0x00,0x00,0x8f,0xb6]
|
|
pvfmk.s.up.lenan %vm12, %vix, %vm15
|
|
|
|
# CHECK-INST: pvfmk.s.lo.at %vm11
|
|
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x0b,0x00,0x00,0x40,0xb6]
|
|
pvfmk.s.lo %vm11
|
|
|
|
# CHECK-INST: pvfmk.s.lo.at %vm11
|
|
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x0b,0x00,0x00,0x40,0xb6]
|
|
pvfmk.s.lo.at %vm11
|
|
|
|
# CHECK-INST: pvfmk.s.lo.af %vm1, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0x00,0x00,0x01,0x00,0x00,0x4f,0xb6]
|
|
pvfmk.s.lo.af %vm1, %vm15
|
|
|
|
# CHECK-INST: pvfmk.s.lo.gt %vm12, %v22
|
|
# CHECK-ENCODING: encoding: [0x00,0x16,0x01,0x0c,0x00,0x00,0x40,0xb6]
|
|
pvfmk.s.lo.gt %vm12, %v22
|
|
|
|
# CHECK-INST: pvfmk.s.lo.lt %vm12, %vix, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0xff,0x02,0x0c,0x00,0x00,0x4f,0xb6]
|
|
pvfmk.s.lo.lt %vm12, %vix, %vm15
|
|
|
|
# CHECK-INST: pvfmk.s.lo.ne %vm11, %v32
|
|
# CHECK-ENCODING: encoding: [0x00,0x20,0x03,0x0b,0x00,0x00,0x40,0xb6]
|
|
pvfmk.s.lo.ne %vm11, %v32
|
|
|
|
# CHECK-INST: pvfmk.s.lo.eq %vm1, %vix, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0xff,0x04,0x01,0x00,0x00,0x4f,0xb6]
|
|
pvfmk.s.lo.eq %vm1, %vix, %vm15
|
|
|
|
# CHECK-INST: pvfmk.s.lo.ge %vm12, %v22
|
|
# CHECK-ENCODING: encoding: [0x00,0x16,0x05,0x0c,0x00,0x00,0x40,0xb6]
|
|
pvfmk.s.lo.ge %vm12, %v22
|
|
|
|
# CHECK-INST: pvfmk.s.lo.le %vm12, %vix, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0xff,0x06,0x0c,0x00,0x00,0x4f,0xb6]
|
|
pvfmk.s.lo.le %vm12, %vix, %vm15
|
|
|
|
# CHECK-INST: pvfmk.s.lo.num %vm11, %v45
|
|
# CHECK-ENCODING: encoding: [0x00,0x2d,0x07,0x0b,0x00,0x00,0x40,0xb6]
|
|
pvfmk.s.lo.num %vm11, %v45
|
|
|
|
# CHECK-INST: pvfmk.s.lo.nan %vm1, %v50, %vm14
|
|
# CHECK-ENCODING: encoding: [0x00,0x32,0x08,0x01,0x00,0x00,0x4e,0xb6]
|
|
pvfmk.s.lo.nan %vm1, %v50, %vm14
|
|
|
|
# CHECK-INST: pvfmk.s.lo.gtnan %vm12, %v22
|
|
# CHECK-ENCODING: encoding: [0x00,0x16,0x09,0x0c,0x00,0x00,0x40,0xb6]
|
|
pvfmk.s.lo.gtnan %vm12, %v22
|
|
|
|
# CHECK-INST: pvfmk.s.lo.ltnan %vm12, %vix, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0xff,0x0a,0x0c,0x00,0x00,0x4f,0xb6]
|
|
pvfmk.s.lo.ltnan %vm12, %vix, %vm15
|
|
|
|
# CHECK-INST: pvfmk.s.lo.nenan %vm11, %v32
|
|
# CHECK-ENCODING: encoding: [0x00,0x20,0x0b,0x0b,0x00,0x00,0x40,0xb6]
|
|
pvfmk.s.lo.nenan %vm11, %v32
|
|
|
|
# CHECK-INST: pvfmk.s.lo.eqnan %vm1, %vix, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0xff,0x0c,0x01,0x00,0x00,0x4f,0xb6]
|
|
pvfmk.s.lo.eqnan %vm1, %vix, %vm15
|
|
|
|
# CHECK-INST: pvfmk.s.lo.genan %vm12, %v22
|
|
# CHECK-ENCODING: encoding: [0x00,0x16,0x0d,0x0c,0x00,0x00,0x40,0xb6]
|
|
pvfmk.s.lo.genan %vm12, %v22
|
|
|
|
# CHECK-INST: pvfmk.s.lo.lenan %vm12, %vix, %vm15
|
|
# CHECK-ENCODING: encoding: [0x00,0xff,0x0e,0x0c,0x00,0x00,0x4f,0xb6]
|
|
pvfmk.s.lo.lenan %vm12, %vix, %vm15
|