VectorNode::vector_operands() is a C2 function used to get a half-open range [start, end) defining which operands are vectors to handle. Op_RoundDoubleMode has two operands but only the 1st one is a vector. Its 2nd operand is the rounding mode (ceil/floor/rint). Missing Op_RoundDoubleMode in the switch block results in the 2nd operand treated as a vector. It is fortunate that this hasn't caused any crash yet because the code follows assumes the 2nd input is an immediate to replicate. C2 just runs some extra code with it. But we should fix this potential issue.
-
Pengfei Li
-
Pengfei Li
- Votes:
-
0 Vote for this issue
- Watchers:
-
3 Start watching this issue
- Created:
- Updated:
- Resolved: