Page MenuHomePhabricator

[AArch64][GlobalISel] Use PackedVectorAllTypeList for G_SHUFFLE_VECTOR
Needs ReviewPublic

Authored by paquette on Tue, Jun 1, 5:29 PM.

Details

Reviewers
aemerson
jroelofs
Summary

We were missing a few types here which would cause us to fall back on some low-hanging fruit (e.g. v4s16)

Reimplement the legal rule for G_SHUFFLE_VECTOR using existing LegalityPredicate stuff, and add a helper that checks if two type indices are the same type.

Diff Detail

Unit TestsFailed

TimeTest
120 msx64 debian > LLVM.CodeGen/AArch64::arm64-rev.ll
Script: -- : 'RUN: at line 2'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/llc < /var/lib/buildkite-agent/builds/llvm-project/llvm/test/CodeGen/AArch64/arm64-rev.ll -mtriple=aarch64-eabi -aarch64-neon-syntax=apple | /var/lib/buildkite-agent/builds/llvm-project/build/bin/FileCheck /var/lib/buildkite-agent/builds/llvm-project/llvm/test/CodeGen/AArch64/arm64-rev.ll
200 msx64 windows > LLVM.CodeGen/AArch64::arm64-rev.ll
Script: -- : 'RUN: at line 2'; c:\ws\w5\llvm-project\premerge-checks\build\bin\llc.exe < C:\ws\w5\llvm-project\premerge-checks\llvm\test\CodeGen\AArch64\arm64-rev.ll -mtriple=aarch64-eabi -aarch64-neon-syntax=apple | c:\ws\w5\llvm-project\premerge-checks\build\bin\filecheck.exe C:\ws\w5\llvm-project\premerge-checks\llvm\test\CodeGen\AArch64\arm64-rev.ll

Event Timeline

paquette created this revision.Tue, Jun 1, 5:29 PM
paquette requested review of this revision.Tue, Jun 1, 5:29 PM
Herald added a project: Restricted Project. · View Herald TranscriptTue, Jun 1, 5:29 PM
aemerson added inline comments.Fri, Jun 11, 4:00 PM
llvm/test/CodeGen/AArch64/GlobalISel/select-shuffle-vector.mir
45

These lines need to stay because the test needs to check the tbl values.

150

And likewise, new tests need the constant pool values.

242

This isn't using a shuffle vector.