< prev index next > test/hotspot/jtreg/compiler/igvn/TestMaskedStoreIdealization.java
Print this page
applyIfCPUFeatureOr = {"avx512", "true", "sve", "true"})
"""
);
});
+ if (op == Operation.STORE_MASK && vec.elementType.name().equals("int") && vec.length == 4) {
+ return scope(
+ """
+ // No IR-verification for testInteger4Mask because it intermittently
+ // compiles to a different code shape. Probably due to a fully set mask.
+ """
+ );
+ }
+
return scope(
let("pty", vec.elementType.name()),
let("ptyIR", ptyIR),
let("idx", idx),
switch (op) {
// } else {
// intoArray(a, offset, mask);
// }
// leading to both stores of the diamond being live. This is highly profile dependent and cannot be predicted.
"""
! @IR(counts = {IRNode.START + "Store#{ptyIR}" + IRNode.MID + "(Memory: @aryptr:#{pty}\\\\[int:#{arraySize}\\\\]).*(:NotNull:exact\\\\[\\\\d+\\\\]).*" + IRNode.END, ">=1",
! IRNode.START + "Store#{ptyIR}" + IRNode.MID + "(Memory: @aryptr:#{pty}\\\\[int:#{arraySize}\\\\]).*(:NotNull:exact\\\\[\\\\d+\\\\]).*" + IRNode.END, "<=2"},
applyIfCPUFeatureOr = {"avx512", "true", "sve", "true"},
phase = CompilePhase.BEFORE_MATCHING)
""";
case STORE_SCATTER ->
"""
! @IR(counts = {IRNode.START + "Store#{ptyIR}" + IRNode.MID + "(Memory: @aryptr:#{pty}\\\\[int:#{arraySize}\\\\]).*(:NotNull:exact\\\\[\\\\d+\\\\]).*" + IRNode.END, "=1"},
applyIfCPUFeatureOr = {"avx512", "true", "sve", "true"},
phase = CompilePhase.BEFORE_MATCHING)
""";
case STORE_VECTOR_AFTER_SCATTER -> opVerification.asToken();
case RANDOM -> "";
// } else {
// intoArray(a, offset, mask);
// }
// leading to both stores of the diamond being live. This is highly profile dependent and cannot be predicted.
"""
! @IR(counts = {IRNode.START + "Store#{ptyIR}" + IRNode.MID + "(Memory: @aryptr:[a-z_]*:#{pty}\\\\[int:#{arraySize}\\\\]).*(:NotNull:exact:[a-z_:]*\\\\[\\\\d+\\\\]).*" + IRNode.END, ">=1",
! IRNode.START + "Store#{ptyIR}" + IRNode.MID + "(Memory: @aryptr:[a-z_]*:#{pty}\\\\[int:#{arraySize}\\\\]).*(:NotNull:exact:[a-z_:].*\\\\[\\\\d+\\\\]).*" + IRNode.END, "<=2"},
applyIfCPUFeatureOr = {"avx512", "true", "sve", "true"},
phase = CompilePhase.BEFORE_MATCHING)
""";
case STORE_SCATTER ->
"""
! @IR(counts = {IRNode.START + "Store#{ptyIR}" + IRNode.MID + "(Memory: @aryptr:[a-z_]*:#{pty}\\\\[int:#{arraySize}\\\\]).*(:NotNull:exact:[a-z_:]*\\\\[\\\\d+\\\\]).*" + IRNode.END, "=1"},
applyIfCPUFeatureOr = {"avx512", "true", "sve", "true"},
phase = CompilePhase.BEFORE_MATCHING)
""";
case STORE_VECTOR_AFTER_SCATTER -> opVerification.asToken();
case RANDOM -> "";
< prev index next >