[llvm-commits] [llvm] r146412 [2/2] - in /llvm/trunk: ./ autoconf/ docs/ include/llvm/ include/llvm/ADT/ include/llvm/Support/ lib/Support/ lib/Target/Hexagon/ lib/Target/Hexagon/TargetInfo/ projects/sample/ projects/sample/autoconf/ test/CodeGen/Hexagon/

Tony Linthicum tlinth at codeaurora.org
Mon Dec 12 13:14:41 PST 2011


Added: llvm/trunk/test/CodeGen/Hexagon/mpy.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Hexagon/mpy.ll?rev=146412&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/Hexagon/mpy.ll (added)
+++ llvm/trunk/test/CodeGen/Hexagon/mpy.ll Mon Dec 12 15:14:40 2011
@@ -0,0 +1,19 @@
+; RUN: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s
+; CHECK: += mpyi
+
+define void @foo(i32 %acc, i32 %num, i32 %num2) nounwind {
+entry:
+  %acc.addr = alloca i32, align 4
+  %num.addr = alloca i32, align 4
+  %num2.addr = alloca i32, align 4
+  store i32 %acc, i32* %acc.addr, align 4
+  store i32 %num, i32* %num.addr, align 4
+  store i32 %num2, i32* %num2.addr, align 4
+  %0 = load i32* %num.addr, align 4
+  %1 = load i32* %acc.addr, align 4
+  %mul = mul nsw i32 %0, %1
+  %2 = load i32* %num2.addr, align 4
+  %add = add nsw i32 %mul, %2
+  store i32 %add, i32* %num.addr, align 4
+  ret void
+}

Added: llvm/trunk/test/CodeGen/Hexagon/static.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Hexagon/static.ll?rev=146412&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/Hexagon/static.ll (added)
+++ llvm/trunk/test/CodeGen/Hexagon/static.ll Mon Dec 12 15:14:40 2011
@@ -0,0 +1,20 @@
+; RUN: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s
+
+ at num = external global i32
+ at acc = external global i32
+ at val = external global i32
+
+; CHECK: CONST32(#acc)
+; CHECK: CONST32(#val)
+; CHECK: CONST32(#num)
+
+define void @foo() nounwind {
+entry:
+  %0 = load i32* @num, align 4
+  %1 = load i32* @acc, align 4
+  %mul = mul nsw i32 %0, %1
+  %2 = load i32* @val, align 4
+  %add = add nsw i32 %mul, %2
+  store i32 %add, i32* @num, align 4
+  ret void
+}

Added: llvm/trunk/test/CodeGen/Hexagon/struct_args.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Hexagon/struct_args.ll?rev=146412&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/Hexagon/struct_args.ll (added)
+++ llvm/trunk/test/CodeGen/Hexagon/struct_args.ll Mon Dec 12 15:14:40 2011
@@ -0,0 +1,15 @@
+; RUN: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s
+; CHECK: r1:0 = or(r{{[0-9]}}:{{[0-9]}}, r{{[0-9]}}:{{[0-9]}})
+
+%struct.small = type { i32, i32 }
+
+ at s1 = common global %struct.small zeroinitializer, align 4
+
+define void @foo() nounwind {
+entry:
+  %0 = load i64* bitcast (%struct.small* @s1 to i64*), align 1
+  call void @bar(i64 %0)
+  ret void
+}
+
+declare void @bar(i64)

Added: llvm/trunk/test/CodeGen/Hexagon/struct_args_large.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Hexagon/struct_args_large.ll?rev=146412&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/Hexagon/struct_args_large.ll (added)
+++ llvm/trunk/test/CodeGen/Hexagon/struct_args_large.ll Mon Dec 12 15:14:40 2011
@@ -0,0 +1,16 @@
+; RUN: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s
+; CHECK: r[[T0:[0-9]+]] = CONST32(#s2)
+; CHECK: r[[T1:[0-9]+]] = memw(r[[T0]] + #0)
+; CHECK: memw(r29 + #0) = r[[T1]]
+
+%struct.large = type { i64, i64 }
+
+ at s2 = common global %struct.large zeroinitializer, align 8
+
+define void @foo() nounwind {
+entry:
+  call void @bar(%struct.large* byval @s2)
+  ret void
+}
+
+declare void @bar(%struct.large* byval)

Added: llvm/trunk/test/CodeGen/Hexagon/vaddh.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Hexagon/vaddh.ll?rev=146412&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/Hexagon/vaddh.ll (added)
+++ llvm/trunk/test/CodeGen/Hexagon/vaddh.ll Mon Dec 12 15:14:40 2011
@@ -0,0 +1,16 @@
+; RUN: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s
+; CHECK: vaddh(r{{[0-9]+}}, r{{[0-9]+}})
+
+ at j = external global i32
+ at k = external global i32
+
+define void @foo() nounwind {
+entry:
+  %0 = load i32* @j, align 4
+  %1 = load i32* @k, align 4
+  %2 = call i32 @llvm.hexagon.A2.svaddh(i32 %0, i32 %1)
+  store i32 %2, i32* @k, align 4
+  ret void
+}
+
+declare i32 @llvm.hexagon.A2.svaddh(i32, i32) nounwind readnone





More information about the llvm-commits mailing list