8135028: support for vectorizing double precision sqrt

Reviewed-by: kvn, twisti
This commit is contained in:
Michael Berg 2015-09-09 10:34:17 -07:00
parent 559bf7ef6e
commit e75f5a5cde
9 changed files with 213 additions and 0 deletions

View file

@ -1858,6 +1858,11 @@ void SuperWord::output() {
vn = VectorNode::make(opc, in1, in2, vlen, velt_basic_type(n));
vlen_in_bytes = vn->as_Vector()->length_in_bytes();
}
} else if (opc == Op_SqrtD) {
// Promote operand to vector (Sqrt is a 2 address instruction)
Node* in = vector_opd(p, 1);
vn = VectorNode::make(opc, in, NULL, vlen, velt_basic_type(n));
vlen_in_bytes = vn->as_Vector()->length_in_bytes();
} else {
ShouldNotReachHere();
}