FRF: 8250675: Vector API crashes on AVX512 machines with assert(eval_map.contains(n)) failed: absent
Vladimir Ivanov
vladimir.x.ivanov at oracle.com
Tue Jul 28 16:53:24 UTC 2020
Good catch, Jie!
I suggest the following variant of the fix:
static void eval_operands(Node* n,
uint& func1, uint& func2, uint& func3,
ResourceHashtable<Node*,uint>& eval_map) {
assert(is_vector_bitwise_op(n), "");
if (is_vector_unary_bitwise_op(n)) {
Node* opnd = n->in(1);
if (VectorNode::is_vector_bitwise_not_pattern(n) &&
is_all_ones_vector(opnd)) {
opnd = n->in(2);
}
func1 = eval_operand(opnd, eval_map);
} else if (is_vector_binary_bitwise_op(n)) {
func1 = eval_operand(n->in(1), eval_map);
func2 = eval_operand(n->in(2), eval_map);
} else {
assert(is_vector_ternary_bitwise_op(n), "unknown operation");
func1 = eval_operand(n->in(1), eval_map);
func2 = eval_operand(n->in(2), eval_map);
func3 = eval_operand(n->in(3), eval_map);
}
}
Strictly speaking, the bug is not Vector API-specific, but
auto-vectorizer doesn't generate such IR shape (scalar bitwise not
pattern is normalized by GVN). So, I'm fine to push the fix along with
Vector API.
But feel free to post it for review on hotspot-compiler-dev at ojn separately.
Best regards,
Vladimir Ivanov
On 28.07.2020 16:35, jiefu(傅杰) wrote:
> Hi all,
>
> Please review the following patch which fixes some Vector API crashes on AVX512 machines.
>
> JBS: https://bugs.openjdk.java.net/browse/JDK-8250675
> Webrev: http://cr.openjdk.java.net/~jiefu/8250675/webrev.00/
>
> Testing:
> - jdk/incubator/vector all passed on AVX512 machines
> - tier1 on Linux/x64
>
> Thanks a lot.
> Best regards,
> Jie
>
More information about the panama-dev
mailing list