brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.7 KiB · fed29bf Raw
87 lines · plain
1; RUN: llc -mtriple=hexagon-unknown-elf < %s | FileCheck %s2 3; CHECK-LABEL: ldf4; CHECK: memw(r{{[0-9]+}}++#4)5; CHECK: memw(r{{[0-9]+}}++#4)6define float @ldf(ptr nocapture readonly %x, ptr nocapture readonly %y) local_unnamed_addr #0 {7entry:8  br label %for.body9 10for.body:11  %arrayidx.phi = phi ptr [ %x, %entry ], [ %arrayidx.inc, %for.body ]12  %arrayidx1.phi = phi ptr [ %y, %entry ], [ %arrayidx1.inc, %for.body ]13  %i.09 = phi i32 [ 0, %entry ], [ %inc, %for.body ]14  %acc.08 = phi float [ 0.000000e+00, %entry ], [ %add, %for.body ]15  %0 = load float, ptr %arrayidx.phi, align 416  %1 = load float, ptr %arrayidx1.phi, align 417  %mul = fmul contract float %0, %118  %add = fadd contract float %acc.08, %mul19  %inc = add nuw nsw i32 %i.09, 120  %exitcond = icmp eq i32 %inc, 102421  %arrayidx.inc = getelementptr float, ptr %arrayidx.phi, i32 122  %arrayidx1.inc = getelementptr float, ptr %arrayidx1.phi, i32 123  br i1 %exitcond, label %for.end, label %for.body24 25for.end:26  ret float %add27}28 29; CHECK-LABEL: ldd30; CHECK: memd(r{{[0-9]+}}++#8)31; CHECK: memd(r{{[0-9]+}}++#8)32define double @ldd(ptr nocapture readonly %x, ptr nocapture readonly %y) local_unnamed_addr #0 {33entry:34  br label %for.body35 36for.body:37  %arrayidx.phi = phi ptr [ %x, %entry ], [ %arrayidx.inc, %for.body ]38  %arrayidx1.phi = phi ptr [ %y, %entry ], [ %arrayidx1.inc, %for.body ]39  %i.09 = phi i32 [ 0, %entry ], [ %inc, %for.body ]40  %acc.08 = phi double [ 0.000000e+00, %entry ], [ %add, %for.body ]41  %0 = load double, ptr %arrayidx.phi, align 842  %1 = load double, ptr %arrayidx1.phi, align 843  %mul = fmul contract double %0, %144  %add = fadd contract double %acc.08, %mul45  %inc = add nuw nsw i32 %i.09, 146  %exitcond = icmp eq i32 %inc, 102447  %arrayidx.inc = getelementptr double, ptr %arrayidx.phi, i32 148  %arrayidx1.inc = getelementptr double, ptr %arrayidx1.phi, i32 149  br i1 %exitcond, label %for.end, label %for.body50 51for.end:52  ret double %add53}54 55; CHECK-LABEL: stf56; CHECK: memw(r{{[0-9]+}}++#4)57define ptr @stf(ptr returned %p) local_unnamed_addr #0 {58entry:59  br label %for.body60 61for.body:62  %arrayidx.phi = phi ptr [ %arrayidx.inc, %for.body ], [ %p, %entry ]63  %call = tail call float @foof() #264  store float %call, ptr %arrayidx.phi, align 865  %arrayidx.inc = getelementptr float, ptr %arrayidx.phi, i32 166  br label %for.body67}68 69declare float @foof() local_unnamed_addr #170 71; CHECK-LABEL: std72; CHECK: memd(r{{[0-9]+}}++#8)73define ptr @std(ptr returned %p) local_unnamed_addr #0 {74entry:75  br label %for.body76 77for.body:78  %arrayidx.phi = phi ptr [ %arrayidx.inc, %for.body ], [ %p, %entry ]79  %call = tail call double @food() #280  store double %call, ptr %arrayidx.phi, align 881  %arrayidx.inc = getelementptr double, ptr %arrayidx.phi, i32 182  br label %for.body83}84 85declare double @food() local_unnamed_addr #186 87