brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · 4685a84 Raw
77 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=instcombine -S | FileCheck %s3 4target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"5 6define i1 @test1(i32 %X) {7; CHECK-LABEL: @test1(8; CHECK-NEXT:    [[C:%.*]] = icmp ne i32 [[X:%.*]], 129; CHECK-NEXT:    ret i1 [[C]]10;11  %A = bitcast i32 %X to i3212  ; Convert to setne int %X, 1213  %c = icmp ne i32 %A, 1214  ret i1 %c15}16 17define i1 @test2(i32 %X, i32 %Y) {18; CHECK-LABEL: @test2(19; CHECK-NEXT:    [[C:%.*]] = icmp ne i32 [[X:%.*]], [[Y:%.*]]20; CHECK-NEXT:    ret i1 [[C]]21;22  %A = bitcast i32 %X to i3223  %B = bitcast i32 %Y to i3224  ; Convert to setne int %X, %Y25  %c = icmp ne i32 %A, %B26  ret i1 %c27}28 29define i32 @test4(i32 %A) {30; CHECK-LABEL: @test4(31; CHECK-NEXT:    [[C:%.*]] = shl i32 [[A:%.*]], 232; CHECK-NEXT:    ret i32 [[C]]33;34  %B = bitcast i32 %A to i3235  %C = shl i32 %B, 236  %D = bitcast i32 %C to i3237  ret i32 %D38}39 40define i16 @test5(i16 %A) {41; CHECK-LABEL: @test5(42; CHECK-NEXT:    [[TMP1:%.*]] = and i16 [[A:%.*]], 1543; CHECK-NEXT:    ret i16 [[TMP1]]44;45  %B = sext i16 %A to i3246  %C = and i32 %B, 1547  %D = trunc i32 %C to i1648  ret i16 %D49}50 51define i1 @test6(i1 %A) {52; CHECK-LABEL: @test6(53; CHECK-NEXT:    ret i1 [[A:%.*]]54;55  %B = zext i1 %A to i3256  %C = icmp ne i32 %B, 057  ret i1 %C58}59 60define i1 @test6a(i1 %A) {61; CHECK-LABEL: @test6a(62; CHECK-NEXT:    ret i1 true63;64  %B = zext i1 %A to i3265  %C = icmp ne i32 %B, -166  ret i1 %C67}68 69define i1 @test7(ptr %A) {70; CHECK-LABEL: @test7(71; CHECK-NEXT:    [[C:%.*]] = icmp eq ptr [[A:%.*]], null72; CHECK-NEXT:    ret i1 [[C]]73;74  %C = icmp eq ptr %A, null75  ret i1 %C76}77