re PR target/87474 (ICE in extract_insn, at recog.c:2305)
2018-10-02 Aaron Sawdey <acsawdey@linux.ibm.com> PR target/87474 * config/rs6000/rs6000-string.c (expand_strn_compare): Check that both P8_VECTOR and VSX are enabled. From-SVN: r264799
This commit is contained in:
parent
d8ccfadbf2
commit
6bd2b8ec8d
@ -1,3 +1,9 @@
|
||||
2018-10-02 Aaron Sawdey <acsawdey@linux.ibm.com>
|
||||
|
||||
PR target/87474
|
||||
* config/rs6000/rs6000-string.c (expand_strn_compare): Check that both
|
||||
P8_VECTOR and VSX are enabled.
|
||||
|
||||
2018-10-02 Andreas Krebbel <krebbel@linux.ibm.com>
|
||||
|
||||
* config/s390/driver-native.c (s390_host_detect_local_cpu): Add
|
||||
|
@ -2205,6 +2205,7 @@ emit_final_str_compare_vec (rtx str1, rtx str2, rtx result,
|
||||
}
|
||||
else
|
||||
{
|
||||
gcc_assert (TARGET_P8_VECTOR);
|
||||
rtx diffix = gen_reg_rtx (DImode);
|
||||
rtx result_gbbd = gen_reg_rtx (V16QImode);
|
||||
/* Since each byte of the input is either 00 or FF, the bytes in
|
||||
@ -2313,9 +2314,12 @@ expand_strn_compare (rtx operands[], int no_length)
|
||||
/* Is it OK to use vec/vsx for this. TARGET_VSX means we have at
|
||||
least POWER7 but we use TARGET_EFFICIENT_UNALIGNED_VSX which is
|
||||
at least POWER8. That way we can rely on overlapping compares to
|
||||
do the final comparison of less than 16 bytes. Also I do not want
|
||||
to deal with making this work for 32 bits. */
|
||||
int use_vec = (bytes >= 16 && !TARGET_32BIT && TARGET_EFFICIENT_UNALIGNED_VSX);
|
||||
do the final comparison of less than 16 bytes. Also I do not
|
||||
want to deal with making this work for 32 bits. In addition, we
|
||||
have to make sure that we have at least P8_VECTOR (we don't allow
|
||||
P9_VECTOR without P8_VECTOR). */
|
||||
int use_vec = (bytes >= 16 && !TARGET_32BIT
|
||||
&& TARGET_EFFICIENT_UNALIGNED_VSX && TARGET_P8_VECTOR);
|
||||
|
||||
if (use_vec)
|
||||
required_align = 16;
|
||||
|
Loading…
Reference in New Issue
Block a user