1 ; RUN: opt < %s -instcombine -S | FileCheck %s
5 define i1 @test1(i8 %A) {
6 %B = sitofp i8 %A to double
7 %C = fcmp ult double %B, 128.0
13 define i1 @test2(i8 %A) {
14 %B = sitofp i8 %A to double
15 %C = fcmp ugt double %B, -128.1
21 define i1 @test3(i8 %A) {
22 %B = sitofp i8 %A to double
23 %C = fcmp ule double %B, 127.0
28 ; CHECK: icmp ne i8 %A, 127
30 define i1 @test4(i8 %A) {
31 %B = sitofp i8 %A to double
32 %C = fcmp ult double %B, 127.0
38 define i32 @test5(i32 %A) {
39 %B = sitofp i32 %A to double
40 %C = fptosi double %B to i32
41 %D = uitofp i32 %C to double
42 %E = fptoui double %D to i32
47 ; CHECK: and i32 %A, 39
49 define i32 @test6(i32 %A) {
52 %D = sitofp i32 %B to double
53 %E = sitofp i32 %C to double
54 %F = fadd double %D, %E
55 %G = fptosi double %F to i32
61 define i32 @test7(i32 %A) nounwind {
62 %B = sitofp i32 %A to double
63 %C = fptoui double %B to i32
69 define i32 @test8(i32 %A) nounwind {
70 %B = uitofp i32 %A to double
71 %C = fptosi double %B to i32