; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt -passes=reassociate -S %s | FileCheck %s define i16 @or_disjoint_both(i16 %a, i16 %b) { ; CHECK-LABEL: @or_disjoint_both( ; CHECK-NEXT: [[OR_1:%.*]] = or disjoint i16 [[A:%.*]], 1 ; CHECK-NEXT: [[OR_2:%.*]] = or disjoint i16 [[OR_1]], [[B:%.*]] ; CHECK-NEXT: ret i16 [[OR_2]] ; %or.1 = or disjoint i16 %b, %a %or.2 = or disjoint i16 %or.1, 1 ret i16 %or.2 } define i16 @or_disjoint_first(i16 %a, i16 %b) { ; CHECK-LABEL: @or_disjoint_first( ; CHECK-NEXT: [[OR_1:%.*]] = or i16 [[A:%.*]], 1 ; CHECK-NEXT: [[OR_2:%.*]] = or i16 [[OR_1]], [[B:%.*]] ; CHECK-NEXT: ret i16 [[OR_2]] ; %or.1 = or i16 %b, %a %or.2 = or disjoint i16 %or.1, 1 ret i16 %or.2 } define i16 @or_disjoint_last(i16 %a, i16 %b) { ; CHECK-LABEL: @or_disjoint_last( ; CHECK-NEXT: [[OR_1:%.*]] = or i16 [[A:%.*]], 1 ; CHECK-NEXT: [[OR_2:%.*]] = or i16 [[OR_1]], [[B:%.*]] ; CHECK-NEXT: ret i16 [[OR_2]] ; %or.1 = or disjoint i16 %b, %a %or.2 = or i16 %or.1, 1 ret i16 %or.2 }