From 6ef976d5e1f47c606df19a08a232146ed7ce4c20 Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Thu, 7 Sep 2017 14:52:26 +0000 Subject: [ARM] Remove redundant vcvt patterns. These don't add any value as they're just compositions of existing patterns. However, they can confuse the cost logic in ISel, leading to duplicated vcvt instructions like in PR33199. llvm-svn: 312724 --- llvm/test/CodeGen/ARM/vcvt.ll | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'llvm/test/CodeGen') diff --git a/llvm/test/CodeGen/ARM/vcvt.ll b/llvm/test/CodeGen/ARM/vcvt.ll index 78105f7e0ad..0d7dc542bae 100644 --- a/llvm/test/CodeGen/ARM/vcvt.ll +++ b/llvm/test/CodeGen/ARM/vcvt.ll @@ -197,3 +197,22 @@ define <2 x i64> @fix_double_to_i64(<2 x double> %in) { ret <2 x i64> %conv } +define i32 @multi_sint(double %c, i32* nocapture %p, i32* nocapture %q) { + %conv = fptosi double %c to i32 + store i32 %conv, i32* %p, align 4 + store i32 %conv, i32* %q, align 4 + ret i32 %conv +; CHECK-LABEL: multi_sint: +; CHECK: vcvt.s32.f64 +; CHECK-NOT: vcvt +} + +define i32 @multi_uint(double %c, i32* nocapture %p, i32* nocapture %q) { + %conv = fptoui double %c to i32 + store i32 %conv, i32* %p, align 4 + store i32 %conv, i32* %q, align 4 + ret i32 %conv +; CHECK-LABEL: multi_uint: +; CHECK: vcvt.u32.f64 +; CHECK-NOT: vcvt +} -- cgit v1.2.3