diff options
-rw-r--r-- | test/LLC/2002-02-12-setuw-setsw.llx | 25 |
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 |