[PATCH] D144434: [VPlan] Handle invariant GEPs in isUniformAfterVectorization.

Karthika Devi C via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 24 03:26:22 PST 2023


kartcq added a comment.

This patch does not solve the issue completely.
But I don't have expertise enough to comment on what needs to be fixed.

A simplified test case which still breaks the Loop vectorizer even after applying this candidate patch is as follows

**test_loop2.ll**

  target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
  target triple = "aarch64-unknown-linux-gnu"
  
  define dso_local fastcc void @_test_loop2(i64 %init, i64 %n, i8* %store_dest) unnamed_addr #0 {
      br label %1.
    critedge5:                                       ; preds = %1
      ret void
    1:                                               ; preds = %0, %1
      %2 = phi i64 [ %7, %1 ], [ %init, %0 ]
      %3 = sub nsw i64 %n, %2
      %4 = trunc i64 %n to i8
      %5 = add i64 %2, %3
      %6 = getelementptr i8, i8* %store_dest, i64 %5
      store i8 %4, i8* %6, align 1
      %7 = add nsw i64 %2, 1
      %8 = icmp sle i64 %7, 1000
      br i1 %8, label %1, label %.critedge5
  }
  
  attributes #0 = { "target-features"="+crc,+crypto,+fp-armv8,+neon,+sve,+v8.1a,+v8.2a,+v8.3a,+v8.4a,+v8a" }

Issue an be reproduced by **command**

  opt -passes=loop-vectorize test_loop2.ll


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D144434



More information about the llvm-commits mailing list