-; RUN: llvm-as -f %s -o - | llc
+; RUN: llvm-as < %s | llc
-;; Date: May 28, 2003.
-;; From: test/Programs/MultiSource/McCat-05-eks/QRfact.c
-;; Function: Matrix QRiterate(Matrix A, Matrix U)
-;;
-;; Error: llc produces an invalid register <NULL VALUE> for the
-;; phi argument %tmp.213 produced by fcmpd:
-;;
-;; LLC Output:
-;;
-;; !****** Outputing Function: QRiterate_1 ******
-;;
-;; .section ".text"
-;; .align 4
-;; .global QRiterate_1
-;; .type QRiterate_1, 2
-;; QRiterate_1:
-;; .L_QRiterate_1_LL_0:
-;; save %o6, -192, %o6
-;; brgz %i0, .L_QRiterate_1_LL_1
-;; add %g0, %g0, %o0
-;; ba .L_QRiterate_1_LL_2
-;; nop
-;;
-;; .L_QRiterate_1_LL_1:
-;; sethi %lm(LLVMGlobal__2), %o1
-;; sethi %hh(LLVMGlobal__2), %o0
-;; or %o0, %hm(LLVMGlobal__2), %o0
-;; sllx %o0, 32, %o0
-;; or %o1, %o0, %o1
-;; or %o1, %lo(LLVMGlobal__2), %o1
-;; ldd [%o1+0], %f32
-;; fcmpd %fcc0, %f2, %f32
-;; ba .L_QRiterate_1_LL_2
-;; add <NULL VALUE>, %g0, %o0
-;;
-;; .L_QRiterate_1_LL_2:
-;; brnz %o0, .L_QRiterate_1_LL_1
-;; nop
-;; ba .L_QRiterate_1_LL_3
-;; nop
-;;
-;; .L_QRiterate_1_LL_3:
-;; jmpl %i7+8, %g0
-;; restore %g0, 0, %g0
-;;
-;; .EndOf_QRiterate_1:
-;; .size QRiterate_1, .EndOf_QRiterate_1-QRiterate_1
-;;
+define void @QRiterate(i32 %p.1, double %tmp.212) {
+entry:
+ %tmp.184 = icmp sgt i32 %p.1, 0 ; <i1> [#uses=1]
+ br i1 %tmp.184, label %shortcirc_next.1, label %shortcirc_done.1
-
-target endian = big
-target pointersize = 64
-
-implementation ; Functions:
-
-internal void %QRiterate(int %p.1, double %tmp.212) {
-entry: ; No predecessors!
- %tmp.184 = setgt int %p.1, 0 ; <bool> [#uses=1]
- br bool %tmp.184, label %shortcirc_next.1, label %shortcirc_done.1
-
-shortcirc_next.1: ; preds = %entry
- %tmp.213 = setne double %tmp.212, 0.000000e+00
+shortcirc_next.1: ; preds = %shortcirc_done.1, %entry
+ %tmp.213 = fcmp une double %tmp.212, 0.000000e+00 ; <i1> [#uses=1]
br label %shortcirc_done.1
-shortcirc_done.1: ; preds = %entry, %shortcirc_next.1
- %val.1 = phi bool [ false, %entry ], [ %tmp.213, %shortcirc_next.1 ]
- br bool %val.1, label %shortcirc_next.1, label %exit.1
+shortcirc_done.1: ; preds = %shortcirc_next.1, %entry
+ %val.1 = phi i1 [ false, %entry ], [ %tmp.213, %shortcirc_next.1 ] ; <i1> [#uses=1]
+ br i1 %val.1, label %shortcirc_next.1, label %exit.1
-exit.1:
- ret void
+exit.1: ; preds = %shortcirc_done.1
+ ret void
}
+