summaryrefslogtreecommitdiff
path: root/test/CodeGen/X86
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2008-11-30 06:02:26 +0000
committerEli Friedman <eli.friedman@gmail.com>2008-11-30 06:02:26 +0000
commit201c9776bd4197569b71fef0519f98a28d1db989 (patch)
treef23152f3c338d59a79a7407bf5a96c8eb366d2da /test/CodeGen/X86
parent3f93df5733dce50961303d571cf16e032b0809bf (diff)
downloadllvm-201c9776bd4197569b71fef0519f98a28d1db989.tar.gz
llvm-201c9776bd4197569b71fef0519f98a28d1db989.tar.bz2
llvm-201c9776bd4197569b71fef0519f98a28d1db989.tar.xz
Fix for PR2164: allow transforming arbitrary-width unsigned divides into
multiplies. Some more cleverness would be nice, though. It would be nice if we could do this transformation on illegal types. Also, we would prefer a narrower constant when possible so that we can use a narrower multiply, which can be cheaper. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60283 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86')
-rw-r--r--test/CodeGen/X86/2008-11-29-DivideConstant16bit.ll10
-rw-r--r--test/CodeGen/X86/urem-i8-constant.ll2
2 files changed, 11 insertions, 1 deletions
diff --git a/test/CodeGen/X86/2008-11-29-DivideConstant16bit.ll b/test/CodeGen/X86/2008-11-29-DivideConstant16bit.ll
new file mode 100644
index 0000000000..fe1870e1d8
--- /dev/null
+++ b/test/CodeGen/X86/2008-11-29-DivideConstant16bit.ll
@@ -0,0 +1,10 @@
+; RUN: llvm-as < %s | llc -mtriple=i686-pc-linux-gnu | grep 63551 | count 1
+; ModuleID = '<stdin>'
+target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
+target triple = "i686-pc-linux-gnu"
+
+define zeroext i16 @a(i16 zeroext %x) nounwind {
+entry:
+ %div = udiv i16 %x, 33 ; <i32> [#uses=1]
+ ret i16 %div
+}
diff --git a/test/CodeGen/X86/urem-i8-constant.ll b/test/CodeGen/X86/urem-i8-constant.ll
index 8a433334f6..bc93684877 100644
--- a/test/CodeGen/X86/urem-i8-constant.ll
+++ b/test/CodeGen/X86/urem-i8-constant.ll
@@ -1,4 +1,4 @@
-; RUN: llvm-as < %s | llc -march=x86 | not grep mul
+; RUN: llvm-as < %s | llc -march=x86 | grep 111
define i8 @foo(i8 %tmp325) {
%t546 = urem i8 %tmp325, 37