diff --git a/src/hotspot/share/opto/vectorization.cpp b/src/hotspot/share/opto/vectorization.cpp index 8e0ca927a1697..f6c45aa978c76 100644 --- a/src/hotspot/share/opto/vectorization.cpp +++ b/src/hotspot/share/opto/vectorization.cpp @@ -1345,6 +1345,12 @@ Node* VPointer::make_pointer_expression(Node* iv_value, Node* ctrl) const { variable = new CastP2XNode(ctrl, variable); phase->register_new_node(variable, ctrl); } + NOT_LP64( // On 32-bit CastP2X produces TypeInt + if (variable->bottom_type()->isa_int()) { + variable = new ConvI2LNode(variable); + phase->register_new_node(variable, ctrl); + } + ) node = new MulLNode(scaleL, variable); phase->register_new_node(node, ctrl); }