brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · 1d508bd Raw
86 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -verify-machineinstrs -mtriple powerpc64le -mcpu=pwr9 | FileCheck %s3; RUN: llc < %s -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -vec-extabi -mcpu=pwr9 | FileCheck %s4; RUN: opt < %s -passes="default<O3>" -S -mtriple powerpc64le -mcpu=pwr9 | FileCheck %s --check-prefix=OPT5 6define i64 @raw() {7; CHECK-LABEL: raw:8; CHECK:       # %bb.0: # %entry9; CHECK-NEXT:    darn 3, 210; CHECK-NEXT:    blr11entry:12  %0 = call i64 @llvm.ppc.darnraw()13  ret i64 %014}15 16define i64 @conditioned() {17; CHECK-LABEL: conditioned:18; CHECK:       # %bb.0: # %entry19; CHECK-NEXT:    darn 3, 120; CHECK-NEXT:    blr21entry:22  %0 = call i64 @llvm.ppc.darn()23  ret i64 %024}25 26define signext i32 @word() {27; CHECK-LABEL: word:28; CHECK:       # %bb.0: # %entry29; CHECK-NEXT:    darn 3, 030; CHECK-NEXT:    extsw 3, 331; CHECK-NEXT:    blr32entry:33  %0 = call i32 @llvm.ppc.darn32()34  ret i32 %035}36 37define i64 @darn_side_effect() {38; CHECK-LABEL: darn_side_effect:39; CHECK:       # %bb.0: # %entry40; CHECK-NEXT:    darn 3, 241; CHECK-NEXT:    darn 3, 142; CHECK-NEXT:    blr43 44; OPT-LABEL: @darn_side_effect45; OPT: call i64 @llvm.ppc.darnraw()46; OPT-NEXT: call i64 @llvm.ppc.darn()47entry:48  %0 = call i64 @llvm.ppc.darnraw()49  %1 = call i64 @llvm.ppc.darn()50  ret i64 %151}52 53define void @darn_loop(ptr noundef %darn) {54; OPT-LABEL: @darn_loop55; OPT-COUNT-32: tail call i64 @llvm.ppc.darn()56entry:57  %inc = alloca i32, align 458  store i32 0, ptr %inc, align 459  br label %cond60 61cond:62  %0 = load i32, ptr %inc, align 463  %cmp = icmp ne i32 %0, 3264  br i1 %cmp, label %body, label %end_loop65 66body:67  %1 = call i64 @llvm.ppc.darn()68  %2 = load i32, ptr %inc, align 469  %idx = getelementptr inbounds i64, ptr %darn, i32 %270  store i64 %1, ptr %idx, align 871  br label %incr72 73incr:74  %3 = load i32, ptr %inc, align 475  %ninc = add nsw i32 %3, 176  store i32 %ninc, ptr %inc, align 477  br label %cond78 79end_loop:80  ret void81}82 83declare i64 @llvm.ppc.darn()84declare i64 @llvm.ppc.darnraw()85declare i32 @llvm.ppc.darn32()86