[PATCH] D68577: [LV] Apply sink-after & interleave-groups as VPlan transformations (NFC)

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 8 16:50:36 PST 2019


efriedma added a comment.

Testcase follows; reproduce with `opt -loop-vectorize`:

  target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
  target triple = "aarch64-unknown-linux-android"
  
  %0 = type { i32 ()*, i32 }
  
  @0 = internal unnamed_addr constant [59 x %0] [%0 zeroinitializer,
  %0 zeroinitializer, %0 zeroinitializer, %0 zeroinitializer,
  %0 zeroinitializer, %0 zeroinitializer, %0 zeroinitializer,
  %0 zeroinitializer, %0 zeroinitializer, %0 zeroinitializer,
  %0 zeroinitializer, %0 zeroinitializer, %0 zeroinitializer,
  %0 zeroinitializer, %0 zeroinitializer, %0 zeroinitializer,
  %0 zeroinitializer, %0 zeroinitializer, %0 zeroinitializer,
  %0 zeroinitializer, %0 zeroinitializer, %0 zeroinitializer,
  %0 zeroinitializer, %0 zeroinitializer, %0 zeroinitializer,
  %0 zeroinitializer, %0 zeroinitializer, %0 zeroinitializer,
  %0 zeroinitializer, %0 zeroinitializer, %0 zeroinitializer,
  %0 zeroinitializer, %0 zeroinitializer, %0 zeroinitializer,
  %0 zeroinitializer, %0 zeroinitializer, %0 zeroinitializer,
  %0 zeroinitializer, %0 zeroinitializer, %0 zeroinitializer,
  %0 zeroinitializer, %0 zeroinitializer, %0 zeroinitializer,
  %0 zeroinitializer, %0 zeroinitializer, %0 zeroinitializer,
  %0 zeroinitializer, %0 zeroinitializer, %0 zeroinitializer,
  %0 zeroinitializer, %0 zeroinitializer, %0 zeroinitializer,
  %0 {i32 ()* null, i32 258}, %0 zeroinitializer, %0 zeroinitializer,
  %0 zeroinitializer, %0 zeroinitializer, %0 zeroinitializer,
  %0 zeroinitializer], align 8
  
  define dso_local void @lookup_ndo_printer(i32 %arg) {
  bb1:
    br label %bb2
  
  bb2:
    %tmp = phi %0* [ %tmp6, %bb2 ], [ getelementptr inbounds ([59 x %0], [59 x %0]* @0, i64 0, i64 0), %bb1 ]
    %tmp3 = getelementptr inbounds %0, %0* %tmp, i64 0, i32 1
    %tmp4 = load i32, i32* %tmp3, align 8
    %tmp5 = icmp eq i32 %tmp4, 258
    %tmp6 = getelementptr inbounds %0, %0* %tmp, i64 1
    br i1 %tmp5, label %bb65, label %bb2
  
  bb65:
    unreachable
  }


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D68577/new/

https://reviews.llvm.org/D68577





More information about the llvm-commits mailing list