aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
diff options
context:
space:
mode:
authorUlrich Weigand <ulrich.weigand@de.ibm.com>2024-09-19 13:18:43 +0200
committerUlrich Weigand <ulrich.weigand@de.ibm.com>2024-09-19 13:19:03 +0200
commitbaf9b7da81025c1e3b0704d7ecf667e06f95642b (patch)
tree366f6bc234ebd9a5a6910b5857d23e4ebf50c7c6 /llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
parent04ccbe6e70cf11e846da3fbc800832c6e56b573f (diff)
downloadllvm-baf9b7da81025c1e3b0704d7ecf667e06f95642b.zip
llvm-baf9b7da81025c1e3b0704d7ecf667e06f95642b.tar.gz
llvm-baf9b7da81025c1e3b0704d7ecf667e06f95642b.tar.bz2
[SystemZ] Fix codegen for _[u]128 intrinsics
PR #74625 introduced a regression in the code generated for the following set of intrinsic: vec_add_u128, vec_addc_u128, vec_adde_u128, vec_addec_u128 vec_sub_u128, vec_subc_u128, vec_sube_u128, vec_subec_u128 vec_sum_u128, vec_msum_u128 vec_gfmsum_128, vec_gfmsum_accum_128 This is because the new code incorrectly assumed that a cast from "unsigned __int128" to "vector unsigned char" would simply be a bitcast re-interpretation; instead, this cast actually truncates the __int128 to char and splats the result. Fixed by adding an intermediate cast via a single-element 128-bit integer vector. Fixes: https://github.com/llvm/llvm-project/issues/109113
Diffstat (limited to 'llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp')
0 files changed, 0 insertions, 0 deletions