This test needs to be upgraded in preparation for the SETCC patch.
[oota-llvm.git] / test / CodeGen / Generic / 2003-07-06-BadIntCmp.ll
1 ; RUN: llvm-upgrade < %s | llvm-as | llc
2
3 ;; Date: May 28, 2003.
4 ;; From: test/Programs/MultiSource/Olden-perimeter/maketree.c
5 ;; Function: int CheckOutside(int x, int y)
6 ;; 
7 ;; Note: The .ll code below for this regression test has identical
8 ;;       behavior to the above function up to the error, but then prints
9 ;;       true/false on the two branches.
10 ;; 
11 ;; Error: llc generates a branch-on-xcc instead of branch-on-icc, which
12 ;;        is wrong because the value being compared (int euclid = x*x + y*y)
13 ;;        overflows, so that the 64-bit and 32-bit compares are not equal.
14
15 %.str_1 = internal constant [6 x sbyte] c"true\0A\00"
16 %.str_2 = internal constant [7 x sbyte] c"false\0A\00"
17
18 implementation   ; Functions:
19
20 declare int %printf(sbyte*, ...)
21
22 internal void %__main() {
23 entry:          ; No predecessors!
24         ret void
25 }
26
27 internal void %CheckOutside(int %x.1, int %y.1) {
28 entry:          ; No predecessors!
29         %tmp.2 = mul int %x.1, %x.1             ; <int> [#uses=1]
30         %tmp.5 = mul int %y.1, %y.1             ; <int> [#uses=1]
31         %tmp.6 = add int %tmp.2, %tmp.5         ; <int> [#uses=1]
32         %tmp.8 = setle int %tmp.6, 4194304              ; <bool> [#uses=1]
33         br bool %tmp.8, label %then, label %else
34
35 then:           ; preds = %entry
36         %tmp.11 = call int (sbyte*, ...)* %printf( sbyte* getelementptr ([6 x sbyte]* %.str_1, long 0, long 0) )                ; <int> [#uses=0]
37         br label %UnifiedExitNode
38
39 else:           ; preds = %entry
40         %tmp.13 = call int (sbyte*, ...)* %printf( sbyte* getelementptr ([7 x sbyte]* %.str_2, long 0, long 0) )                ; <int> [#uses=0]
41         br label %UnifiedExitNode
42
43 UnifiedExitNode:                ; preds = %then, %else
44         ret void
45 }
46
47 int %main() {
48 entry:          ; No predecessors!
49         call void %__main( )
50         call void %CheckOutside( int 2097152, int 2097152 )
51         ret int 0
52 }