aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/LLC/2002-02-12-setuw-setsw.llx25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/LLC/2002-02-12-setuw-setsw.llx b/test/LLC/2002-02-12-setuw-setsw.llx
new file mode 100644
index 0000000000..7cf46b68e6
--- /dev/null
+++ b/test/LLC/2002-02-12-setuw-setsw.llx
@@ -0,0 +1,25 @@
+; Our back-end is generating set-unsigned (setuw) for -2, when it
+; should be using setsw.
+;
+; RUN: as %s -f -o Output/%s.bc
+; RUN: llc -f Output/%s.bc
+; RUN: /usr/ccs/bin/as Output/%s.s -xarch=v9
+; RUN: /opt/SUNWspro60/bin/cc -xarch=v9 Output/%s.o -o Output/%s.exe
+; RUN: Output/%s.exe
+;
+
+implementation
+declare void "abort"()
+
+int "main"(int %argc, sbyte * * %argv)
+begin
+ %T1 = cast int 2 to uint
+ %tmp = add uint %T1, 4294967294 ; == -2
+ %cond = seteq uint %tmp, 0
+ br bool %cond, label %Ok, label %Fail
+Ok:
+ ret int 0
+Fail:
+ call void %abort()
+ ret int 1
+end