diff options
| author | Tim Northover <tnorthover@apple.com> | 2014-03-31 15:46:22 +0000 |
|---|---|---|
| committer | Tim Northover <tnorthover@apple.com> | 2014-03-31 15:46:22 +0000 |
| commit | 4c9d2c7e3f4dba95b37db0c31361181be077e7a6 (patch) | |
| tree | 1f58b95f5c3808386aa1741adf174f47691fa69e /llvm/lib | |
| parent | f48103618e3fdb8b0e4d9e551055cac8f0d4fdfc (diff) | |
| download | llvm-4c9d2c7e3f4dba95b37db0c31361181be077e7a6.zip llvm-4c9d2c7e3f4dba95b37db0c31361181be077e7a6.tar.gz llvm-4c9d2c7e3f4dba95b37db0c31361181be077e7a6.tar.bz2 | |
ARM64: add more scalar patterns for reciprocal ops.
llvm-svn: 205203
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/ARM64/ARM64InstrInfo.td | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM64/ARM64InstrInfo.td b/llvm/lib/Target/ARM64/ARM64InstrInfo.td index 73fc046..4804f9a 100644 --- a/llvm/lib/Target/ARM64/ARM64InstrInfo.td +++ b/llvm/lib/Target/ARM64/ARM64InstrInfo.td @@ -2575,8 +2575,23 @@ def : Pat<(v1i64 (int_arm64_neon_fcvtps (v1f64 FPR64:$Rn))), (FCVTPSv1i64 FPR64:$Rn)>; def : Pat<(v1i64 (int_arm64_neon_fcvtpu (v1f64 FPR64:$Rn))), (FCVTPUv1i64 FPR64:$Rn)>; + +def : Pat<(f32 (int_arm64_neon_frecpe (f32 FPR32:$Rn))), + (FRECPEv1i32 FPR32:$Rn)>; +def : Pat<(f64 (int_arm64_neon_frecpe (f64 FPR64:$Rn))), + (FRECPEv1i64 FPR64:$Rn)>; def : Pat<(v1f64 (int_arm64_neon_frecpe (v1f64 FPR64:$Rn))), (FRECPEv1i64 FPR64:$Rn)>; + +def : Pat<(f32 (int_arm64_neon_frecpx (f32 FPR32:$Rn))), + (FRECPXv1i32 FPR32:$Rn)>; +def : Pat<(f64 (int_arm64_neon_frecpx (f64 FPR64:$Rn))), + (FRECPXv1i64 FPR64:$Rn)>; + +def : Pat<(f32 (int_arm64_neon_frsqrte (f32 FPR32:$Rn))), + (FRSQRTEv1i32 FPR32:$Rn)>; +def : Pat<(f64 (int_arm64_neon_frsqrte (f64 FPR64:$Rn))), + (FRSQRTEv1i64 FPR64:$Rn)>; def : Pat<(v1f64 (int_arm64_neon_frsqrte (v1f64 FPR64:$Rn))), (FRSQRTEv1i64 FPR64:$Rn)>; |
