2 ;; From: test/Programs/MultiSource/McCat-05-eks/QRfact.c
3 ;; Function: Matrix QRiterate(Matrix A, Matrix U)
5 ;; Error: llc produces an invalid register <NULL VALUE> for the
6 ;; a boolean value computed using setne with a double.
8 ;; Cause: In SparcInstrSelection.cpp, for SetCC, when a result of setne
9 ;; is used for a branch, it can generate a "branch-on-integer-register"
10 ;; for integer registers. In that case, it never saves the value of
11 ;; the boolean result. It was attempting to do the same thing for an
15 ;; !****** Outputing Function: QRiterate_1 ******
19 ;; .global QRiterate_1
20 ;; .type QRiterate_1, 2
22 ;; .L_QRiterate_1_LL_0:
23 ;; save %o6, -192, %o6
24 ;; sethi %hh(LLVMGlobal__2), %o1
25 ;; sethi %lm(LLVMGlobal__2), %o0
26 ;; or %o1, %hm(LLVMGlobal__2), %o1
29 ;; or %o0, %lo(LLVMGlobal__2), %o0
31 ;; ba .L_QRiterate_1_LL_1
32 ;; fcmpd %fcc0, %f0, %f32
34 ;; .L_QRiterate_1_LL_1:
35 ;; brnz <NULL VALUE>, .L_QRiterate_1_LL_1
37 ;; ba .L_QRiterate_1_LL_2
40 ;; .L_QRiterate_1_LL_2:
42 ;; restore %g0, 0, %g0
44 ;; .EndOf_QRiterate_1:
45 ;; .size QRiterate_1, .EndOf_QRiterate_1-QRiterate_1
49 target pointersize = 64
51 implementation ; Functions:
53 internal void %QRiterate(double %tmp.212) {
54 entry: ; No predecessors!
55 br label %shortcirc_next.1
57 shortcirc_next.1: ; preds = %entry
58 %tmp.213 = setne double %tmp.212, 0.000000e+00
59 br bool %tmp.213, label %shortcirc_next.1, label %exit.1