brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 96f4e95 Raw
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