Modernize testcases
[oota-llvm.git] / test / Transforms / InstCombine / cast-set.ll
1 ; I'm not really sure if instcombine should do things like these.  LevelRaise 
2 ; already sufficiently takes care of these cases, but level raise is really
3 ; slow.  Might it be better to make there be an instcombine prepass before
4 ; level raise that takes care of the obvious stuff?
5
6 ; RUN: if as < %s | opt -instcombine | dis | grep cast
7 ; RUN: then exit 1
8 ; RUN: else exit 0
9 ; RUN: fi
10
11 bool %test1(int %X) {
12         %A = cast int %X to uint
13         %c = setne uint %A, 0        ; Convert to setne int %X, 0
14         ret bool %c
15 }
16
17 bool %test2(int %X, int %Y) {
18         %A = cast int %X to uint
19         %B = cast int %Y to uint
20         %c = setne uint %A, %B       ; Convert to setne int %X, %Y
21         ret bool %c
22 }
23
24 bool %test3(int %A, int %B) {
25         %cond216 = setlt int %A, %B             ; <bool> [#uses=1]
26         %cst109 = cast bool %cond216 to uint           ; <uint> [#uses=1]
27         %cond219 = setgt int %A, %B             ; <bool> [#uses=1]
28         %cst111 = cast bool %cond219 to uint           ; <uint> [#uses=1]
29         %reg113 = and uint %cst109, %cst111           ; <uint> [#uses=1]
30         %cst222 = cast uint %reg113 to bool             ; <int> [#uses=1]
31         ret bool %cst222
32 }
33