; RUN: opt < %s -loweratomic -S | FileCheck %s ; RUN: opt < %s -passes=loweratomic -S | FileCheck %s define i8 @add() { ; CHECK-LABEL: @add( %i = alloca i8 %j = atomicrmw add i8* %i, i8 42 monotonic ; CHECK: [[INST:%[a-z0-9]+]] = load ; CHECK-NEXT: add ; CHECK-NEXT: store ret i8 %j ; CHECK: ret i8 [[INST]] } define i8 @nand() { ; CHECK-LABEL: @nand( %i = alloca i8 %j = atomicrmw nand i8* %i, i8 42 monotonic ; CHECK: [[INST:%[a-z0-9]+]] = load ; CHECK-NEXT: and ; CHECK-NEXT: xor ; CHECK-NEXT: store ret i8 %j ; CHECK: ret i8 [[INST]] } define i8 @min() { ; CHECK-LABEL: @min( %i = alloca i8 %j = atomicrmw min i8* %i, i8 42 monotonic ; CHECK: [[INST:%[a-z0-9]+]] = load ; CHECK-NEXT: icmp ; CHECK-NEXT: select ; CHECK-NEXT: store ret i8 %j ; CHECK: ret i8 [[INST]] }