Commit b958e1c1 by Carl Love Committed by Carl Love

rs6000.md (prefetch): Generate ISA 2.06 instructions dcbt and dcbtstt with TH=16 if...

gcc/ChangeLog:

2018-05-16  Carl Love  <cel@us.ibm.com>

	* config/rs6000/rs6000.md (prefetch): Generate ISA 2.06 instructions
	dcbt and dcbtstt with TH=16 if operands[2] is 0 and Power 8 or newer.

From-SVN: r260296
parent 73264a8d
2018-05-16 Carl Love <cel@us.ibm.com>
* config/rs6000/rs6000.md (prefetch): Generate ISA 2.06 instructions
dcbt and dcbtstt with TH=16 if operands[2] is 0 and Power 8 or newer.
2018-05-16 Martin Jambor <mjambor@suse.cz>
* ipa-prop.c (ipa_free_all_edge_args): Remove.
......
......@@ -13243,22 +13243,27 @@
(match_operand:SI 2 "const_int_operand" "n"))]
""
{
/* dcbtstt, dcbtt and TM=0b10000 support starts with ISA 2.06. */
int inst_select = INTVAL (operands[2]) || !TARGET_POPCNTD;
/* dcbtstt, dcbtt and TH=0b10000 support starts with ISA 2.06 (Power7).
AIX does not support the dcbtstt and dcbtt extended mnemonics.
The AIX assembler does not support the three operand form of dcbt
and dcbtst on Power 7 (-mpwr7). */
int inst_select = INTVAL (operands[2]) || !TARGET_DIRECT_MOVE;
if (REG_P (operands[0]))
{
if (INTVAL (operands[1]) == 0)
return inst_select ? "dcbt 0,%0" : "dcbtt 0,%0";
return inst_select ? "dcbt 0,%0" : "dcbt 0,%0,16";
else
return inst_select ? "dcbtst 0,%0" : "dcbtstt 0,%0";
return inst_select ? "dcbtst 0,%0" : "dcbtst 0,%0,16";
}
else
{
if (INTVAL (operands[1]) == 0)
return inst_select ? "dcbt %a0" : "dcbtt %a0";
return inst_select ? "dcbt %a0" : "dcbt %a0,16";
else
return inst_select ? "dcbtst %a0" : "dcbtstt %a0";
return inst_select ? "dcbtst %a0" : "dcbtst %a0,16";
}
}
[(set_attr "type" "load")])
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment