mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-13 09:33:50 +00:00
ARM two-operand aliases for VAND/VEOR/VORR instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146095 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
30a264eb7f
commit
9fa0a743e6
@ -5348,6 +5348,32 @@ defm : VFPDTAnyInstAlias<"vorr${p}", "$Vd, $Vn, $Vm",
|
|||||||
(VORRd DPR:$Vd, DPR:$Vn, DPR:$Vm, pred:$p)>;
|
(VORRd DPR:$Vd, DPR:$Vn, DPR:$Vm, pred:$p)>;
|
||||||
defm : VFPDTAnyInstAlias<"vorr${p}", "$Vd, $Vn, $Vm",
|
defm : VFPDTAnyInstAlias<"vorr${p}", "$Vd, $Vn, $Vm",
|
||||||
(VORRq QPR:$Vd, QPR:$Vn, QPR:$Vm, pred:$p)>;
|
(VORRq QPR:$Vd, QPR:$Vn, QPR:$Vm, pred:$p)>;
|
||||||
|
// ... two-operand aliases
|
||||||
|
def : NEONInstAlias<"vand${p} $Vdn, $Vm",
|
||||||
|
(VANDd DPR:$Vdn, DPR:$Vdn, DPR:$Vm, pred:$p)>;
|
||||||
|
def : NEONInstAlias<"vand${p} $Vdn, $Vm",
|
||||||
|
(VANDq QPR:$Vdn, QPR:$Vdn, QPR:$Vm, pred:$p)>;
|
||||||
|
def : NEONInstAlias<"veor${p} $Vdn, $Vm",
|
||||||
|
(VEORd DPR:$Vdn, DPR:$Vdn, DPR:$Vm, pred:$p)>;
|
||||||
|
def : NEONInstAlias<"veor${p} $Vdn, $Vm",
|
||||||
|
(VEORq QPR:$Vdn, QPR:$Vdn, QPR:$Vm, pred:$p)>;
|
||||||
|
def : NEONInstAlias<"vand${p} $Vdn, $Vm",
|
||||||
|
(VORRd DPR:$Vdn, DPR:$Vdn, DPR:$Vm, pred:$p)>;
|
||||||
|
def : NEONInstAlias<"vand${p} $Vdn, $Vm",
|
||||||
|
(VORRq QPR:$Vdn, QPR:$Vdn, QPR:$Vm, pred:$p)>;
|
||||||
|
|
||||||
|
defm : VFPDTAnyInstAlias<"vand${p}", "$Vdn, $Vm",
|
||||||
|
(VANDd DPR:$Vdn, DPR:$Vdn, DPR:$Vm, pred:$p)>;
|
||||||
|
defm : VFPDTAnyInstAlias<"vand${p}", "$Vdn, $Vm",
|
||||||
|
(VANDq QPR:$Vdn, QPR:$Vdn, QPR:$Vm, pred:$p)>;
|
||||||
|
defm : VFPDTAnyInstAlias<"veor${p}", "$Vdn, $Vm",
|
||||||
|
(VEORd DPR:$Vdn, DPR:$Vdn, DPR:$Vm, pred:$p)>;
|
||||||
|
defm : VFPDTAnyInstAlias<"veor${p}", "$Vdn, $Vm",
|
||||||
|
(VEORq QPR:$Vdn, QPR:$Vdn, QPR:$Vm, pred:$p)>;
|
||||||
|
defm : VFPDTAnyInstAlias<"vorr${p}", "$Vdn, $Vm",
|
||||||
|
(VORRd DPR:$Vdn, DPR:$Vdn, DPR:$Vm, pred:$p)>;
|
||||||
|
defm : VFPDTAnyInstAlias<"vorr${p}", "$Vdn, $Vm",
|
||||||
|
(VORRq QPR:$Vdn, QPR:$Vdn, QPR:$Vm, pred:$p)>;
|
||||||
|
|
||||||
// VMUL two-operand aliases.
|
// VMUL two-operand aliases.
|
||||||
def : NEONInstAlias<"vmul${p}.i16 $Ddn, $Dm$lane",
|
def : NEONInstAlias<"vmul${p}.i16 $Ddn, $Dm$lane",
|
||||||
|
@ -230,3 +230,34 @@
|
|||||||
|
|
||||||
@ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2]
|
@ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2]
|
||||||
@ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2]
|
@ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2]
|
||||||
|
|
||||||
|
@ Two-operand aliases
|
||||||
|
vand.s8 q6, q5
|
||||||
|
vand.s16 q7, q1
|
||||||
|
vand.s32 q8, q2
|
||||||
|
vand.f64 q8, q2
|
||||||
|
|
||||||
|
veor.8 q6, q5
|
||||||
|
veor.p16 q7, q1
|
||||||
|
veor.u32 q8, q2
|
||||||
|
veor.d q8, q2
|
||||||
|
|
||||||
|
veor.i8 q6, q5
|
||||||
|
veor.16 q7, q1
|
||||||
|
veor.f q8, q2
|
||||||
|
veor.i64 q8, q2
|
||||||
|
|
||||||
|
@ CHECK: vand q6, q6, q5 @ encoding: [0x5a,0xc1,0x0c,0xf2]
|
||||||
|
@ CHECK: vand q7, q7, q1 @ encoding: [0x52,0xe1,0x0e,0xf2]
|
||||||
|
@ CHECK: vand q8, q8, q2 @ encoding: [0xd4,0x01,0x40,0xf2]
|
||||||
|
@ CHECK: vand q8, q8, q2 @ encoding: [0xd4,0x01,0x40,0xf2]
|
||||||
|
|
||||||
|
@ CHECK: veor q6, q6, q5 @ encoding: [0x5a,0xc1,0x0c,0xf3]
|
||||||
|
@ CHECK: veor q7, q7, q1 @ encoding: [0x52,0xe1,0x0e,0xf3]
|
||||||
|
@ CHECK: veor q8, q8, q2 @ encoding: [0xd4,0x01,0x40,0xf3]
|
||||||
|
@ CHECK: veor q8, q8, q2 @ encoding: [0xd4,0x01,0x40,0xf3]
|
||||||
|
|
||||||
|
@ CHECK: veor q6, q6, q5 @ encoding: [0x5a,0xc1,0x0c,0xf3]
|
||||||
|
@ CHECK: veor q7, q7, q1 @ encoding: [0x52,0xe1,0x0e,0xf3]
|
||||||
|
@ CHECK: veor q8, q8, q2 @ encoding: [0xd4,0x01,0x40,0xf3]
|
||||||
|
@ CHECK: veor q8, q8, q2 @ encoding: [0xd4,0x01,0x40,0xf3]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user