[NVPTX] Add some extra tests for mul.wide to test non-power-of-two source types
authorJustin Holewinski <jholewinski@nvidia.com>
Wed, 23 Jul 2014 20:23:49 +0000 (20:23 +0000)
committerJustin Holewinski <jholewinski@nvidia.com>
Wed, 23 Jul 2014 20:23:49 +0000 (20:23 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@213794 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/NVPTX/mulwide.ll

index 8cfb5c2a7dff76e0dece15297483d5dbf000a8ec..1ddf9739e20252bc2632e25b2fcfec8ac0184efe 100644 (file)
@@ -66,3 +66,25 @@ define i64 @mulwideu32(i32 %a, i32 %b) {
   %val2 = mul i64 %val0, %val1
   ret i64 %val2
 }
+
+; OPT-LABEL: @mulwideu7
+; NOOPT-LABEL: @mulwideu7
+define i64 @mulwideu7(i7 %a, i7 %b) {
+; OPT: mul.wide.u32
+; NOOPT: mul.lo.s64
+  %val0 = zext i7 %a to i64
+  %val1 = zext i7 %b to i64
+  %val2 = mul i64 %val0, %val1
+  ret i64 %val2
+}
+
+; OPT-LABEL: @mulwides7
+; NOOPT-LABEL: @mulwides7
+define i64 @mulwides7(i7 %a, i7 %b) {
+; OPT: mul.wide.s32
+; NOOPT: mul.lo.s64
+  %val0 = sext i7 %a to i64
+  %val1 = sext i7 %b to i64
+  %val2 = mul i64 %val0, %val1
+  ret i64 %val2
+}