diff options
| author | Joey Gouly <joey.gouly@arm.com> | 2013-08-27 11:24:16 +0000 |
|---|---|---|
| committer | Joey Gouly <joey.gouly@arm.com> | 2013-08-27 11:24:16 +0000 |
| commit | a710d810f51a215aa6232a5623b29e7b2378cf50 (patch) | |
| tree | c3366a932d344831ad4594fb96207f9bbbae7c1c /llvm/lib/Target/ARM | |
| parent | 0df16321b6c65daae85e160b6fc4b8ac4fd04bc1 (diff) | |
| download | bcm5719-llvm-a710d810f51a215aa6232a5623b29e7b2378cf50.tar.gz bcm5719-llvm-a710d810f51a215aa6232a5623b29e7b2378cf50.zip | |
[ARMv8] Add some negative tests for the recent VFP/NEON instructions.
Fix two issues I found while writing these tests.
llvm-svn: 189341
Diffstat (limited to 'llvm/lib/Target/ARM')
| -rw-r--r-- | llvm/lib/Target/ARM/ARMInstrNEON.td | 4 | ||||
| -rw-r--r-- | llvm/lib/Target/ARM/ARMInstrVFP.td | 5 |
2 files changed, 7 insertions, 2 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrNEON.td b/llvm/lib/Target/ARM/ARMInstrNEON.td index e86e658d9d8..a5d898540ba 100644 --- a/llvm/lib/Target/ARM/ARMInstrNEON.td +++ b/llvm/lib/Target/ARM/ARMInstrNEON.td @@ -5758,9 +5758,9 @@ multiclass VRINT_FPI<string op, bits<3> op9_7, SDPatternOperator Int> { } } - def : InstAlias<!strconcat("vrint", op, ".f32.f32\t$Dd, $Dm"), + def : NEONInstAlias<!strconcat("vrint", op, ".f32.f32\t$Dd, $Dm"), (!cast<Instruction>(NAME#"D") DPR:$Dd, DPR:$Dm)>; - def : InstAlias<!strconcat("vrint", op, ".f32.f32\t$Qd, $Qm"), + def : NEONInstAlias<!strconcat("vrint", op, ".f32.f32\t$Qd, $Qm"), (!cast<Instruction>(NAME#"Q") QPR:$Qd, QPR:$Qm)>; } diff --git a/llvm/lib/Target/ARM/ARMInstrVFP.td b/llvm/lib/Target/ARM/ARMInstrVFP.td index 3bb4d6f97f9..34d83c6446d 100644 --- a/llvm/lib/Target/ARM/ARMInstrVFP.td +++ b/llvm/lib/Target/ARM/ARMInstrVFP.td @@ -669,6 +669,11 @@ multiclass vrint_inst_zrx<string opc, bit op, bit op2> { let Inst{7} = op2; let Inst{16} = op; } + + def : InstAlias<!strconcat("vrint", opc, "$p.f32.f32\t$Sd, $Sm"), + (!cast<Instruction>(NAME#"S") SPR:$Sd, SPR:$Sm, pred:$p)>; + def : InstAlias<!strconcat("vrint", opc, "$p.f64.f64\t$Dd, $Dm"), + (!cast<Instruction>(NAME#"D") DPR:$Dd, DPR:$Dm, pred:$p)>; } defm VRINTZ : vrint_inst_zrx<"z", 0, 1>; |

