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