blob: 632b984ee98c240ea2de7be2b7789bf8ddbe3db8 [file] [log] [blame]
Tanya Lattner2393a242004-11-06 23:08:26 +00001; RUN: llvm-as -f %s -o - | llc
2
Vikram S. Advebd6161d2003-05-28 13:54:41 +00003;; Date: May 28, 2003.
4;; From: test/Programs/MultiSource/McCat-05-eks/QRfact.c
5;; Function: Matrix QRiterate(Matrix A, Matrix U)
6;;
7;; Error: llc produces an invalid register <NULL VALUE> for the
8;; phi argument %tmp.213 produced by fcmpd:
9;;
10;; LLC Output:
11;;
12;; !****** Outputing Function: QRiterate_1 ******
13;;
14;; .section ".text"
15;; .align 4
16;; .global QRiterate_1
17;; .type QRiterate_1, 2
18;; QRiterate_1:
19;; .L_QRiterate_1_LL_0:
20;; save %o6, -192, %o6
21;; brgz %i0, .L_QRiterate_1_LL_1
22;; add %g0, %g0, %o0
23;; ba .L_QRiterate_1_LL_2
24;; nop
25;;
26;; .L_QRiterate_1_LL_1:
27;; sethi %lm(LLVMGlobal__2), %o1
28;; sethi %hh(LLVMGlobal__2), %o0
29;; or %o0, %hm(LLVMGlobal__2), %o0
30;; sllx %o0, 32, %o0
31;; or %o1, %o0, %o1
32;; or %o1, %lo(LLVMGlobal__2), %o1
33;; ldd [%o1+0], %f32
34;; fcmpd %fcc0, %f2, %f32
35;; ba .L_QRiterate_1_LL_2
36;; add <NULL VALUE>, %g0, %o0
37;;
38;; .L_QRiterate_1_LL_2:
39;; brnz %o0, .L_QRiterate_1_LL_1
40;; nop
41;; ba .L_QRiterate_1_LL_3
42;; nop
43;;
44;; .L_QRiterate_1_LL_3:
45;; jmpl %i7+8, %g0
46;; restore %g0, 0, %g0
47;;
48;; .EndOf_QRiterate_1:
49;; .size QRiterate_1, .EndOf_QRiterate_1-QRiterate_1
50;;
51
52
53target endian = big
54target pointersize = 64
55
56implementation ; Functions:
57
58internal void %QRiterate(int %p.1, double %tmp.212) {
59entry: ; No predecessors!
60 %tmp.184 = setgt int %p.1, 0 ; <bool> [#uses=1]
61 br bool %tmp.184, label %shortcirc_next.1, label %shortcirc_done.1
62
63shortcirc_next.1: ; preds = %entry
64 %tmp.213 = setne double %tmp.212, 0.000000e+00
65 br label %shortcirc_done.1
66
67shortcirc_done.1: ; preds = %entry, %shortcirc_next.1
68 %val.1 = phi bool [ false, %entry ], [ %tmp.213, %shortcirc_next.1 ]
69 br bool %val.1, label %shortcirc_next.1, label %exit.1
70
71exit.1:
72 ret void
73}