[PATCH] D132634: [AArch64] Add index check before lowerInterleavedStore() uses ShuffleVectorInst's mask

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 30 04:20:59 PDT 2022


dmgreen added a comment.

Thanks - this looks OK to me. Can you add these two extra tests to the new test file, both of which will produce the same output. Then this LGTM.

  define void @noundefs(<8 x i32> %a, <8 x i32> %b, ptr %dst) {
  BB:
    %S = shufflevector <8 x i32> %a, <8 x i32> %b, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 undef, i32 14, i32 7, i32 15>
    store <16 x i32> %S, ptr %dst, align 64
    ret void
  }
  
  define void @undefs(<8 x i32> %a, <8 x i32> %b, ptr %dst) {
  BB:
    %S = shufflevector <8 x i32> %a, <8 x i32> %b, <16 x i32> <i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 3, i32 11, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 7, i32 15>
    store <16 x i32> %S, ptr %dst, align 64
    ret void
  }



================
Comment at: llvm/test/CodeGen/AArch64/aarch64-shufflevector.ll:1
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc -mtriple=aarch64-linux-gnu -opaque-pointers < %s | FileCheck %s
----------------
aarch64-shufflevector.ll is a bit of a generic name for this test file, considering what it is testing. Maybe change it to be something that mentions interleave stores with undef elements?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D132634



More information about the llvm-commits mailing list