ARM: Add optional datatype suffix to NEON mvn asm syntax.
rdar://14194152 llvm-svn: 184244
This commit is contained in:
parent
8c8c6fab4c
commit
a6ed57d8dd
|
@ -6698,12 +6698,17 @@ def VST4qWB_register_Asm_32 :
|
||||||
(ins VecListFourQ:$list, addrmode6:$addr,
|
(ins VecListFourQ:$list, addrmode6:$addr,
|
||||||
rGPR:$Rm, pred:$p)>;
|
rGPR:$Rm, pred:$p)>;
|
||||||
|
|
||||||
// VMOV takes an optional datatype suffix
|
// VMOV/VMVN takes an optional datatype suffix
|
||||||
defm : NEONDTAnyInstAlias<"vmov${p}", "$Vd, $Vm",
|
defm : NEONDTAnyInstAlias<"vmov${p}", "$Vd, $Vm",
|
||||||
(VORRd DPR:$Vd, DPR:$Vm, DPR:$Vm, pred:$p)>;
|
(VORRd DPR:$Vd, DPR:$Vm, DPR:$Vm, pred:$p)>;
|
||||||
defm : NEONDTAnyInstAlias<"vmov${p}", "$Vd, $Vm",
|
defm : NEONDTAnyInstAlias<"vmov${p}", "$Vd, $Vm",
|
||||||
(VORRq QPR:$Vd, QPR:$Vm, QPR:$Vm, pred:$p)>;
|
(VORRq QPR:$Vd, QPR:$Vm, QPR:$Vm, pred:$p)>;
|
||||||
|
|
||||||
|
defm : NEONDTAnyInstAlias<"vmvn${p}", "$Vd, $Vm",
|
||||||
|
(VMVNd DPR:$Vd, DPR:$Vm, pred:$p)>;
|
||||||
|
defm : NEONDTAnyInstAlias<"vmvn${p}", "$Vd, $Vm",
|
||||||
|
(VMVNq QPR:$Vd, QPR:$Vm, pred:$p)>;
|
||||||
|
|
||||||
// VCLT (register) is an assembler alias for VCGT w/ the operands reversed.
|
// VCLT (register) is an assembler alias for VCGT w/ the operands reversed.
|
||||||
// D-register versions.
|
// D-register versions.
|
||||||
def : NEONInstAlias<"vcle${p}.s8 $Dd, $Dn, $Dm",
|
def : NEONInstAlias<"vcle${p}.s8 $Dd, $Dn, $Dm",
|
||||||
|
|
|
@ -128,3 +128,42 @@
|
||||||
@ CHECK: vmov.8 d18[1], r1 @ encoding: [0xb0,0x1b,0x42,0xee]
|
@ CHECK: vmov.8 d18[1], r1 @ encoding: [0xb0,0x1b,0x42,0xee]
|
||||||
@ CHECK: vmov.16 d18[1], r1 @ encoding: [0xf0,0x1b,0x02,0xee]
|
@ CHECK: vmov.16 d18[1], r1 @ encoding: [0xf0,0x1b,0x02,0xee]
|
||||||
@ CHECK: vmov.32 d18[1], r1 @ encoding: [0x90,0x1b,0x22,0xee]
|
@ CHECK: vmov.32 d18[1], r1 @ encoding: [0x90,0x1b,0x22,0xee]
|
||||||
|
|
||||||
|
|
||||||
|
vmvn.8 d1, d2
|
||||||
|
vmvn.16 d1, d2
|
||||||
|
vmvn.32 d1, d2
|
||||||
|
vmvn.64 d1, d2
|
||||||
|
vmvn.i8 d1, d2
|
||||||
|
vmvn.i16 d1, d2
|
||||||
|
vmvn.i32 d1, d2
|
||||||
|
vmvn.i64 d1, d2
|
||||||
|
vmvn.s8 d1, d2
|
||||||
|
vmvn.s16 d1, d2
|
||||||
|
vmvn.s32 d1, d2
|
||||||
|
vmvn.s64 d1, d2
|
||||||
|
vmvn.u8 d1, d2
|
||||||
|
vmvn.u16 d1, d2
|
||||||
|
vmvn.u32 d1, d2
|
||||||
|
vmvn.u64 d1, d2
|
||||||
|
vmvn.f32 d1, d2
|
||||||
|
vmvn.f64 d1, d2
|
||||||
|
|
||||||
|
@ CHECK: vmvn d1, d2 @ encoding: [0x82,0x15,0xb0,0xf3]
|
||||||
|
@ CHECK: vmvn d1, d2 @ encoding: [0x82,0x15,0xb0,0xf3]
|
||||||
|
@ CHECK: vmvn d1, d2 @ encoding: [0x82,0x15,0xb0,0xf3]
|
||||||
|
@ CHECK: vmvn d1, d2 @ encoding: [0x82,0x15,0xb0,0xf3]
|
||||||
|
@ CHECK: vmvn d1, d2 @ encoding: [0x82,0x15,0xb0,0xf3]
|
||||||
|
@ CHECK: vmvn d1, d2 @ encoding: [0x82,0x15,0xb0,0xf3]
|
||||||
|
@ CHECK: vmvn d1, d2 @ encoding: [0x82,0x15,0xb0,0xf3]
|
||||||
|
@ CHECK: vmvn d1, d2 @ encoding: [0x82,0x15,0xb0,0xf3]
|
||||||
|
@ CHECK: vmvn d1, d2 @ encoding: [0x82,0x15,0xb0,0xf3]
|
||||||
|
@ CHECK: vmvn d1, d2 @ encoding: [0x82,0x15,0xb0,0xf3]
|
||||||
|
@ CHECK: vmvn d1, d2 @ encoding: [0x82,0x15,0xb0,0xf3]
|
||||||
|
@ CHECK: vmvn d1, d2 @ encoding: [0x82,0x15,0xb0,0xf3]
|
||||||
|
@ CHECK: vmvn d1, d2 @ encoding: [0x82,0x15,0xb0,0xf3]
|
||||||
|
@ CHECK: vmvn d1, d2 @ encoding: [0x82,0x15,0xb0,0xf3]
|
||||||
|
@ CHECK: vmvn d1, d2 @ encoding: [0x82,0x15,0xb0,0xf3]
|
||||||
|
@ CHECK: vmvn d1, d2 @ encoding: [0x82,0x15,0xb0,0xf3]
|
||||||
|
@ CHECK: vmvn d1, d2 @ encoding: [0x82,0x15,0xb0,0xf3]
|
||||||
|
@ CHECK: vmvn d1, d2 @ encoding: [0x82,0x15,0xb0,0xf3]
|
||||||
|
|
Loading…
Reference in New Issue