1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 2 2; RUN: opt < %s -passes=instcombine -S | FileCheck %s 3; PR12234 4 5@g = extern_weak global i32 6define i32 @function(i32 %x) nounwind { 7; CHECK-LABEL: define i32 @function 8; CHECK-SAME: (i32 [[X:%.*]]) #[[ATTR0:[0-9]+]] { 9; CHECK-NEXT: entry: 10; CHECK-NEXT: [[XOR:%.*]] = xor i32 [[X]], 1 11; CHECK-NEXT: store volatile i32 [[XOR]], ptr inttoptr (i64 1 to ptr), align 4 12; CHECK-NEXT: [[OR4:%.*]] = or i32 [[X]], 1 13; CHECK-NEXT: ret i32 [[OR4]] 14; 15entry: 16 %xor = xor i32 %x, 1 17 store volatile i32 %xor, ptr inttoptr (i64 1 to ptr), align 4 18 %cmp = icmp eq ptr @g, null 19 %ext = zext i1 %cmp to i32 20 %or = or i32 %ext, 1 21 %or4 = or i32 %or, %xor 22 ret i32 %or4 23} 24