blob: 17ad7dc2e69ac8750c7f00af260009f9952fb188 [file] [log] [blame]
Chris Lattner419bda12002-08-03 20:30:26 +00001; This test ensures that "strength reduction" of conditional expressions are
2; working. Basically this boils down to converting setlt,gt,le,ge instructions
3; into equivalent setne,eq instructions.
4;
5
Chris Lattner423909d2003-06-28 23:32:04 +00006; RUN: as < %s | opt -instcombine | dis | grep -v seteq | grep -v setne | not grep set
Chris Lattner419bda12002-08-03 20:30:26 +00007
8bool "test1"(uint %A) {
9 %B = setge uint %A, 1 ; setne %A, 0
10 ret bool %B
11}
12
13bool "test2"(uint %A) {
14 %B = setgt uint %A, 0 ; setne %A, 0
15 ret bool %B
16}
17
18bool "test3"(sbyte %A) {
19 %B = setge sbyte %A, -127 ; setne %A, -128
20 ret bool %B
21}
Chris Lattner840d4692002-08-09 23:33:58 +000022
23bool %test4(sbyte %A) {
24 %B = setle sbyte %A, 126 ; setne %A, 127
25 ret bool %B
26}
27
28bool %test5(sbyte %A) {
29 %B = setlt sbyte %A, 127 ; setne %A, 127
30 ret bool %B
31}