middle-end/105711 - properly handle CONST_INT when expanding bitfields
authorRichard Biener <rguenther@suse.de>
Tue, 24 May 2022 08:09:25 +0000 (10:09 +0200)
committerRichard Biener <rguenther@suse.de>
Thu, 2 Jun 2022 08:13:28 +0000 (10:13 +0200)
commitcdd93e5b88e6aab832509d7aabed6cfd2d014c58
tree92f5886e9a1217e1f55a71dee9394d9d11766720
parent740771a620f661800b99dfc039b8896e2ddb9265
middle-end/105711 - properly handle CONST_INT when expanding bitfields

This is another place where we fail to pass down the mode of a
CONST_INT.

2022-05-24  Richard Biener  <rguenther@suse.de>

PR middle-end/105711
* expmed.cc (extract_bit_field_as_subreg): Add op0_mode parameter
and use it.
(extract_bit_field_1): Pass down the mode of op0 to
extract_bit_field_as_subreg.

* gcc.target/i386/pr105711.c: New testcase.

(cherry picked from commit 91c7c5edd2c1d31bf379be1d077b39644391cc31)
gcc/expmed.cc
gcc/testsuite/gcc.target/i386/pr105711.c [new file with mode: 0644]