[llvm] [LoadStoreVectorizer] Postprocess and merge equivalence classes (PR #114501)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 8 11:41:27 PST 2024
================
@@ -0,0 +1,63 @@
+; RUN: opt %s -mtriple=x86_64-unknown-linux-gnu -passes=load-store-vectorizer -mcpu=skx -S -o %t.out.ll
+; RUN: FileCheck -input-file=%t.out.ll %s
+
+; This test verifies that the vectorizer can handle an extended sequence of
+; getelementptr instructions and generate longer vectors. With special handling,
+; some elements can still be vectorized even if they require looking up the
+; common underlying object deeper than 6 levels from the original pointer.
+
+; The test below is the simplified version of actual performance oriented
+; workload; the offsets in getelementptr instructions are similar or same for
+; the test simplicity.
+
+define void @v1_v2_v4_v1_to_v8_levels_6_7_8_8(i32 %arg0, ptr align 16 %arg1) {
+; CHECK-LABEL: @v1_v2_v4_v1_to_v8_levels_6_7_8_8
+; CHECK: store <8 x half>
----------------
arsenm wrote:
Use update_test_checks so we can see full context
https://github.com/llvm/llvm-project/pull/114501
More information about the llvm-commits
mailing list