1; RUN: opt < %s -loweratomic -S | FileCheck %s 2 3define i8 @add() { 4; CHECK: @add 5 %i = alloca i8 6 %j = atomicrmw add i8* %i, i8 42 monotonic 7; CHECK: [[INST:%[a-z0-9]+]] = load 8; CHECK-NEXT: add 9; CHECK-NEXT: store 10 ret i8 %j 11; CHECK: ret i8 [[INST]] 12} 13 14define i8 @nand() { 15; CHECK: @nand 16 %i = alloca i8 17 %j = atomicrmw nand i8* %i, i8 42 monotonic 18; CHECK: [[INST:%[a-z0-9]+]] = load 19; CHECK-NEXT: and 20; CHECK-NEXT: xor 21; CHECK-NEXT: store 22 ret i8 %j 23; CHECK: ret i8 [[INST]] 24} 25 26define i8 @min() { 27; CHECK: @min 28 %i = alloca i8 29 %j = atomicrmw min i8* %i, i8 42 monotonic 30; CHECK: [[INST:%[a-z0-9]+]] = load 31; CHECK-NEXT: icmp 32; CHECK-NEXT: select 33; CHECK-NEXT: store 34 ret i8 %j 35; CHECK: ret i8 [[INST]] 36} 37