66 lines · plain
1; RUN: llc < %s -mcpu=pwr8 -mtriple=powerpc64le-unknown-unknown | FileCheck %s2define i8 @atomic_min_i8() {3 top:4 %0 = alloca i8, align 25 call void @llvm.lifetime.start.p0(i64 2, ptr %0)6 store i8 -1, ptr %0, align 27 %1 = atomicrmw min ptr %0, i8 0 acq_rel8 %2 = load atomic i8, ptr %0 acquire, align 89 call void @llvm.lifetime.end.p0(i64 2, ptr %0)10 ret i8 %211; CHECK-LABEL: atomic_min_i812; CHECK: lbarx [[DST:[0-9]+]],13; CHECK-NEXT: extsb [[EXT:[0-9]+]], [[DST]]14; CHECK-NEXT: cmpw [[EXT]], {{[0-9]+}}15; CHECK-NEXT: blt 016}17define i16 @atomic_min_i16() {18 top:19 %0 = alloca i16, align 220 call void @llvm.lifetime.start.p0(i64 2, ptr %0)21 store i16 -1, ptr %0, align 222 %1 = atomicrmw min ptr %0, i16 0 acq_rel23 %2 = load atomic i16, ptr %0 acquire, align 824 call void @llvm.lifetime.end.p0(i64 2, ptr %0)25 ret i16 %226; CHECK-LABEL: atomic_min_i1627; CHECK: lharx [[DST:[0-9]+]],28; CHECK-NEXT: extsh [[EXT:[0-9]+]], [[DST]]29; CHECK-NEXT: cmpw [[EXT]], {{[0-9]+}}30; CHECK-NEXT: blt 031}32 33define i8 @atomic_max_i8() {34 top:35 %0 = alloca i8, align 236 call void @llvm.lifetime.start.p0(i64 2, ptr %0)37 store i8 -1, ptr %0, align 238 %1 = atomicrmw max ptr %0, i8 0 acq_rel39 %2 = load atomic i8, ptr %0 acquire, align 840 call void @llvm.lifetime.end.p0(i64 2, ptr %0)41 ret i8 %242; CHECK-LABEL: atomic_max_i843; CHECK: lbarx [[DST:[0-9]+]],44; CHECK-NEXT: extsb [[EXT:[0-9]+]], [[DST]]45; CHECK-NEXT: cmpw [[EXT]], {{[0-9]+}}46; CHECK-NEXT: bgt 047}48define i16 @atomic_max_i16() {49 top:50 %0 = alloca i16, align 251 call void @llvm.lifetime.start.p0(i64 2, ptr %0)52 store i16 -1, ptr %0, align 253 %1 = atomicrmw max ptr %0, i16 0 acq_rel54 %2 = load atomic i16, ptr %0 acquire, align 855 call void @llvm.lifetime.end.p0(i64 2, ptr %0)56 ret i16 %257; CHECK-LABEL: atomic_max_i1658; CHECK: lharx [[DST:[0-9]+]],59; CHECK-NEXT: extsh [[EXT:[0-9]+]], [[DST]]60; CHECK-NEXT: cmpw [[EXT]], {{[0-9]+}}61; CHECK-NEXT: bgt 062}63 64declare void @llvm.lifetime.start.p0(i64, ptr)65declare void @llvm.lifetime.end.p0(i64, ptr)66