brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · de72d7e Raw
68 lines · plain
1; RUN: llc < %s -mtriple aarch64 -mcpu=falkor -disable-post-ra | FileCheck %s2 3; Check that strided load tag collisions are avoided on Falkor.4 5; CHECK-LABEL: hwpf1:6; CHECK: ldp {{w[0-9]+}}, {{w[0-9]+}}, [x[[BASE:[0-9]+]], #-16]7; CHECK: mov x[[BASE2:[0-9]+]], x[[BASE]]8; CHECK: ldp {{w[0-9]+}}, {{w[0-9]+}}, [x[[BASE2]], #-8]9; CHECK: ldp {{w[0-9]+}}, {{w[0-9]+}}, [x[[BASE3:[0-9]+]]]10; CHECK: mov x[[BASE4:[0-9]+]], x[[BASE3]]11; CHECK: ldp {{w[0-9]+}}, {{w[0-9]+}}, [x[[BASE4]], #8]12 13define void @hwpf1(ptr %p, ptr %sp, ptr %sp2, ptr %sp3, ptr %sp4) {14entry:15  br label %loop16 17loop:18  %iv = phi i32 [ 0, %entry ], [ %inc, %loop ]19 20  %gep = getelementptr inbounds i32, ptr %p, i32 %iv21  %load1 = load i32, ptr %gep22 23  %gep2 = getelementptr inbounds i32, ptr %gep, i32 124  %load2 = load i32, ptr %gep225 26  %add = add i32 %load1, %load227  %storegep = getelementptr inbounds i32, ptr %sp, i32 %iv28  store i32 %add, ptr %storegep29 30  %gep3 = getelementptr inbounds i32, ptr %gep, i32 231  %load3 = load i32, ptr %gep332 33  %gep4 = getelementptr inbounds i32, ptr %gep, i32 334  %load4 = load i32, ptr %gep435 36  %add2 = add i32 %load3, %load437  %storegep2 = getelementptr inbounds i32, ptr %sp2, i32 %iv38  store i32 %add2, ptr %storegep239 40  %gep5 = getelementptr inbounds i32, ptr %gep, i32 441  %load5 = load i32, ptr %gep542 43  %gep6 = getelementptr inbounds i32, ptr %gep, i32 544  %load6 = load i32, ptr %gep645 46  %add3 = add i32 %load5, %load647  %storegep3 = getelementptr inbounds i32, ptr %sp3, i32 %iv48  store i32 %add3, ptr %storegep349 50  %gep7 = getelementptr inbounds i32, ptr %gep, i32 651  %load7 = load i32, ptr %gep752 53  %gep8 = getelementptr inbounds i32, ptr %gep, i32 754  %load8 = load i32, ptr %gep855 56  %add4 = add i32 %load7, %load857  %storegep4 = getelementptr inbounds i32, ptr %sp4, i32 %iv58  store i32 %add4, ptr %storegep459 60  %inc = add i32 %iv, 861  %exitcnd = icmp uge i32 %inc, 102462  br i1 %exitcnd, label %exit, label %loop63 64exit:65  ret void66}67 68