[PATCH] D62285: [AArch64] Add nvcast patterns for v2f32 -> v1f64

Serge Pavlov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu May 23 18:17:58 PDT 2019


This revision was automatically updated to reflect the committed changes.
Closed by commit rL361584: [AArch64] Add nvcast patterns for v2f32 -> v1f64 (authored by sepavloff, committed by ).

Changed prior to commit:
  https://reviews.llvm.org/D62285?vs=200871&id=201110#toc

Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D62285/new/

https://reviews.llvm.org/D62285

Files:
  llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td
  llvm/trunk/test/CodeGen/AArch64/arm64-nvcast.ll


Index: llvm/trunk/test/CodeGen/AArch64/arm64-nvcast.ll
===================================================================
--- llvm/trunk/test/CodeGen/AArch64/arm64-nvcast.ll
+++ llvm/trunk/test/CodeGen/AArch64/arm64-nvcast.ll
@@ -47,3 +47,15 @@
   store <2 x float> <float 0xC7DFDFDFC0000000, float 0xC7DFDFDFC0000000>, <2 x float>* bitcast (%"st1"* @_gv to <2 x float>*), align 8
   ret void
 }
+
+%struct.Vector3 = type { float, float, float }
+
+define void @nvcast_v2f32_v1f64(%struct.Vector3*) {
+; CHECK-LABEL: _nvcast_v2f32_v1f64
+; CHECK: fmov.2s v[[REG:[0-9]+]], #1.00000000
+; CHECK: str d[[REG]], [x0]
+entry:
+  %a13 = bitcast %struct.Vector3* %0 to <1 x double>*
+  store <1 x double> <double 0x3F8000003F800000>, <1 x double>* %a13, align 8
+  ret void
+}
Index: llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td
===================================================================
--- llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td
+++ llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td
@@ -6203,6 +6203,7 @@
 def : Pat<(v2i32 (AArch64NvCast (v2f32 FPR64:$src))), (v2i32 FPR64:$src)>;
 def : Pat<(v2f32 (AArch64NvCast (v2f32 FPR64:$src))), (v2f32 FPR64:$src)>;
 def : Pat<(v1i64 (AArch64NvCast (v2f32 FPR64:$src))), (v1i64 FPR64:$src)>;
+def : Pat<(v1f64 (AArch64NvCast (v2f32 FPR64:$src))), (v1f64 FPR64:$src)>;
 
 // Natural vector casts (128 bit)
 def : Pat<(v16i8 (AArch64NvCast (v4i32 FPR128:$src))), (v16i8 FPR128:$src)>;


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D62285.201110.patch
Type: text/x-patch
Size: 1445 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190524/9d3961ee/attachment.bin>


More information about the llvm-commits mailing list