aboutsummaryrefslogtreecommitdiff
path: root/clang/test/CIR/CodeGen/struct-init.cpp
diff options
context:
space:
mode:
authorSimon Tatham <simon.tatham@arm.com>2025-10-22 09:09:40 +0100
committerGitHub <noreply@github.com>2025-10-22 09:09:40 +0100
commitf36f2bff843c2bdf388189f0fd39fe3512070e1d (patch)
tree95907ec1e397c3160d534c9b7eb994ed4b1abcbe /clang/test/CIR/CodeGen/struct-init.cpp
parent3656f6f22652b01eb13fc2f39afcf36396d64c4f (diff)
downloadllvm-f36f2bff843c2bdf388189f0fd39fe3512070e1d.zip
llvm-f36f2bff843c2bdf388189f0fd39fe3512070e1d.tar.gz
llvm-f36f2bff843c2bdf388189f0fd39fe3512070e1d.tar.bz2
[ARM][MVE] Invalid tail predication in LowOverheadLoop pass (#163941)
When a loop is converted into a low-overhead loop using tail predication via FPSCR.LTPSIZE, the MQPRCopy pseudo-instruction is expanded into either two VMOVD or a single MVE_VORR, depending on whether the values written to the lanes with a 'false' predicate matter. (MVE_VORR uses the ambient LTPSIZE predicate, so it won't write those lanes at all; the double VMOVD is slower but gets them right.) This check was done based on whether the output of the MQPRCopy is live coming out of the loop. But it missed a case where the live-out value is not _itself_ an MQPRCopy, but is a predicated operation taking its false lanes from an MQPRCopy. Fixes #162644, and adds a new MIR test case derived from the reproducer in that bug.
Diffstat (limited to 'clang/test/CIR/CodeGen/struct-init.cpp')
0 files changed, 0 insertions, 0 deletions