aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorMin-Yih Hsu <min.hsu@sifive.com>2025-03-20 09:06:24 -0700
committerGitHub <noreply@github.com>2025-03-20 09:06:24 -0700
commit03ceb26b55b855c64385c52020846eaa86dd278b (patch)
treefa4c00ffed65bad036e4f87f8bf829388619e78a /clang/lib/CodeGen/CodeGenModule.cpp
parentb231f6f86237fc1a15377b4aad6cf9be4808d727 (diff)
downloadllvm-03ceb26b55b855c64385c52020846eaa86dd278b.zip
llvm-03ceb26b55b855c64385c52020846eaa86dd278b.tar.gz
llvm-03ceb26b55b855c64385c52020846eaa86dd278b.tar.bz2
[RISCV] Fix incorrect slide offset when using vnsrl to de-interleave (#132123)
Given this shuffle: ``` shufflevector <8 x i8> %0, <8 x i8> %1, <8 x i32> <i32 0, i32 4, i32 8, i32 12, i32 undef, i32 undef, i32 undef, i32 undef> ``` #127272 lowers it with a bunch of vnsrl. If we describe the result in terms of the shuffle mask, we expect: ``` <0, 4, 8, 12, u, u, u, u> ``` but we actually got: ``` <0, 4, u, u, 8, 12, u, u> ``` for factor larger than 2. This is caused by `CONCAT_VECTORS` on incorrect (sub) vector types. This patch fixes the said issue by building an aggregate vector with the correct sub vector types. Fix #132071
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions