[llvm] r314161 - [ARM] Add tests for vcvt followed by store.

Eli Friedman via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 25 14:37:52 PDT 2017


Author: efriedma
Date: Mon Sep 25 14:37:52 2017
New Revision: 314161

URL: http://llvm.org/viewvc/llvm-project?rev=314161&view=rev
Log:
[ARM] Add tests for vcvt followed by store.


Modified:
    llvm/trunk/test/CodeGen/ARM/vcvt.ll

Modified: llvm/trunk/test/CodeGen/ARM/vcvt.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/vcvt.ll?rev=314161&r1=314160&r2=314161&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/ARM/vcvt.ll (original)
+++ llvm/trunk/test/CodeGen/ARM/vcvt.ll Mon Sep 25 14:37:52 2017
@@ -379,3 +379,55 @@ define i32 @multi_uint(double %c, i32* n
   store i32 %conv, i32* %q, align 4
   ret i32 %conv
 }
+
+define i32 @double_to_sint_store(double %c, i32* nocapture %p) {
+; CHECK-LABEL: double_to_sint_store:
+; CHECK:       @ BB#0:
+; CHECK-NEXT:    vmov d16, r0, r1
+; CHECK-NEXT:    vcvt.s32.f64 s0, d16
+; CHECK-NEXT:    vmov r0, s0
+; CHECK-NEXT:    str r0, [r2]
+; CHECK-NEXT:    mov pc, lr
+  %conv = fptosi double %c to i32
+  store i32 %conv, i32* %p, align 4
+  ret i32 %conv
+}
+
+define i32 @double_to_uint_store(double %c, i32* nocapture %p) {
+; CHECK-LABEL: double_to_uint_store:
+; CHECK:       @ BB#0:
+; CHECK-NEXT:    vmov d16, r0, r1
+; CHECK-NEXT:    vcvt.u32.f64 s0, d16
+; CHECK-NEXT:    vmov r0, s0
+; CHECK-NEXT:    str r0, [r2]
+; CHECK-NEXT:    mov pc, lr
+  %conv = fptoui double %c to i32
+  store i32 %conv, i32* %p, align 4
+  ret i32 %conv
+}
+
+define i32 @float_to_sint_store(float %c, i32* nocapture %p) {
+; CHECK-LABEL: float_to_sint_store:
+; CHECK:       @ BB#0:
+; CHECK-NEXT:    vmov s0, r0
+; CHECK-NEXT:    vcvt.s32.f32 s0, s0
+; CHECK-NEXT:    vmov r0, s0
+; CHECK-NEXT:    str r0, [r1]
+; CHECK-NEXT:    mov pc, lr
+  %conv = fptosi float %c to i32
+  store i32 %conv, i32* %p, align 4
+  ret i32 %conv
+}
+
+define i32 @float_to_uint_store(float %c, i32* nocapture %p) {
+; CHECK-LABEL: float_to_uint_store:
+; CHECK:       @ BB#0:
+; CHECK-NEXT:    vmov s0, r0
+; CHECK-NEXT:    vcvt.u32.f32 s0, s0
+; CHECK-NEXT:    vmov r0, s0
+; CHECK-NEXT:    str r0, [r1]
+; CHECK-NEXT:    mov pc, lr
+  %conv = fptoui float %c to i32
+  store i32 %conv, i32* %p, align 4
+  ret i32 %conv
+}




More information about the llvm-commits mailing list