summaryrefslogtreecommitdiff
path: root/test/CodeGen/PowerPC/constants.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/PowerPC/constants.ll')
-rw-r--r--test/CodeGen/PowerPC/constants.ll52
1 files changed, 52 insertions, 0 deletions
diff --git a/test/CodeGen/PowerPC/constants.ll b/test/CodeGen/PowerPC/constants.ll
new file mode 100644
index 00000000000..9efca916d69
--- /dev/null
+++ b/test/CodeGen/PowerPC/constants.ll
@@ -0,0 +1,52 @@
+; All of these routines should be perform optimal load of constants.
+; RUN: llc < %s -march=ppc32 | \
+; RUN: grep lis | count 5
+; RUN: llc < %s -march=ppc32 | \
+; RUN: grep ori | count 3
+; RUN: llc < %s -march=ppc32 | \
+; RUN: grep "li " | count 4
+
+define i32 @f1() {
+entry:
+ ret i32 1
+}
+
+define i32 @f2() {
+entry:
+ ret i32 -1
+}
+
+define i32 @f3() {
+entry:
+ ret i32 0
+}
+
+define i32 @f4() {
+entry:
+ ret i32 32767
+}
+
+define i32 @f5() {
+entry:
+ ret i32 65535
+}
+
+define i32 @f6() {
+entry:
+ ret i32 65536
+}
+
+define i32 @f7() {
+entry:
+ ret i32 131071
+}
+
+define i32 @f8() {
+entry:
+ ret i32 2147483647
+}
+
+define i32 @f9() {
+entry:
+ ret i32 -2147483648
+}