Use the llvm-upgrade program to upgrade llvm assembly.
[oota-llvm.git] / test / Transforms / LevelRaise / 2003-06-25-ExprAnalysis.ll
1 ; The expr analysis routines were being too aggressive across cast instructions!
2
3 ; RUN: llvm-upgrade < %s | llvm-as | opt -raise | llvm-dis | not grep 4294967295
4
5 target endian = big
6 target pointersize = 64
7         %struct..istack_struct = type { %struct..istack_struct*, %struct..istk_entry*, uint }
8         %struct..istk_entry = type { double, int, int, double, double, sbyte* }
9
10 implementation   ; Functions:
11 bool %Intersection(%struct..istack_struct* %tmp.0, uint %tmp.12) {              ; No predecessors!
12         %tmp.8 = getelementptr %struct..istack_struct* %tmp.0, long 0, uint 1          ; <%struct..istk_entry**> [#uses=1]
13         %tmp.9 = load %struct..istk_entry** %tmp.8              ; <%struct..istk_entry*> [#uses=1]
14         %dec = sub uint %tmp.12, 1              ; <uint> [#uses=1]
15         %tmp.13 = cast uint %dec to ulong               ; <ulong> [#uses=1]
16         %tmp.14 = mul ulong %tmp.13, 40         ; <ulong> [#uses=1]
17         %tmp.16 = cast %struct..istk_entry* %tmp.9 to long              ; <long> [#uses=1]
18         %tmp.17 = cast ulong %tmp.14 to long            ; <long> [#uses=1]
19         %tmp.18 = add long %tmp.16, %tmp.17             ; <long> [#uses=1]
20         %tmp.19 = cast long %tmp.18 to %struct..istk_entry*             ; <%struct..istk_entry*> [#uses=1]
21         %tmp.21 = setne %struct..istk_entry* %tmp.19, null              ; <bool> [#uses=1]
22         ret bool %tmp.21
23 }
24