brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 9dc0dcc Raw
49 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt -S -passes=instcombine < %s | FileCheck %s3 4; (X | C) | Y --> (X | Y) | C5 6define i32 @test1(i32 %x, i32 %y) {7; CHECK-LABEL: @test1(8; CHECK-NEXT:    [[INNER:%.*]] = or disjoint i32 [[X:%.*]], [[Y:%.*]]9; CHECK-NEXT:    [[OUTER:%.*]] = or disjoint i32 [[INNER]], 510; CHECK-NEXT:    ret i32 [[OUTER]]11;12  %inner = or disjoint i32 %x, 513  %outer = or disjoint i32 %inner, %y14  ret i32 %outer15}16 17define i32 @test2(i32 %x, i32 %y) {18; CHECK-LABEL: @test2(19; CHECK-NEXT:    [[INNER:%.*]] = or disjoint i32 [[X:%.*]], [[Y:%.*]]20; CHECK-NEXT:    [[OUTER:%.*]] = or i32 [[INNER]], 521; CHECK-NEXT:    ret i32 [[OUTER]]22;23  %inner = or i32 %x, 524  %outer = or disjoint i32 %inner, %y25  ret i32 %outer26}27 28define i32 @test3(i32 %x, i32 %y) {29; CHECK-LABEL: @test3(30; CHECK-NEXT:    [[INNER:%.*]] = or i32 [[X:%.*]], [[Y:%.*]]31; CHECK-NEXT:    [[OUTER:%.*]] = or i32 [[INNER]], 532; CHECK-NEXT:    ret i32 [[OUTER]]33;34  %inner = or disjoint i32 %x, 535  %outer = or i32 %inner, %y36  ret i32 %outer37}38 39define i32 @test4(i32 %x, i32 %y) {40; CHECK-LABEL: @test4(41; CHECK-NEXT:    [[INNER:%.*]] = or i32 [[X:%.*]], [[Y:%.*]]42; CHECK-NEXT:    [[OUTER:%.*]] = or i32 [[INNER]], 543; CHECK-NEXT:    ret i32 [[OUTER]]44;45  %inner = or i32 %x, 546  %outer = or i32 %inner, %y47  ret i32 %outer48}49