diff options
author | Richard Biener <rguenther@suse.de> | 2024-10-15 09:48:10 +0200 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2024-10-15 11:06:30 +0200 |
commit | 79b881df72c946f2ba61879c36ae93b0cb974617 (patch) | |
tree | e7cbbf31c29bb73228d479ad49b74ed753b1de2f /libcpp/files.cc | |
parent | 8af474aa5d5efdda7def6cdcec3f246df2c7026a (diff) | |
download | gcc-79b881df72c946f2ba61879c36ae93b0cb974617.zip gcc-79b881df72c946f2ba61879c36ae93b0cb974617.tar.gz gcc-79b881df72c946f2ba61879c36ae93b0cb974617.tar.bz2 |
middle-end/117137 - expansion issue with vector equality compares
When expanding a COND_EXPR with a vector equality compare as condition
expand_cond_expr_using_cmove fails to properly go the cbranch path.
I failed to massage it's twisted logic so the simple fix is to make
sure to expand a vector condition separately which also generates
the expected code for the testcase:
ptest %xmm0, %xmm0
cmovne %edi, %eax
PR middle-end/117137
* expr.cc (expand_cond_expr_using_cmove): Make sure to
expand vector comparisons separately.
* gcc.dg/torture/pr117137.c: New testcase.
Diffstat (limited to 'libcpp/files.cc')
0 files changed, 0 insertions, 0 deletions