< prev index next >

src/hotspot/share/opto/vectornode.cpp

Print this page




 235   case Op_ReplicateB:
 236   case Op_ReplicateS:
 237   case Op_ReplicateI:
 238   case Op_ReplicateL:
 239   case Op_ReplicateF:
 240   case Op_ReplicateD:
 241     return true;
 242   default:
 243     return false;
 244   }
 245 }
 246 
 247 // [Start, end) half-open range defining which operands are vectors
 248 void VectorNode::vector_operands(Node* n, uint* start, uint* end) {
 249   switch (n->Opcode()) {
 250   case Op_LoadB:   case Op_LoadUB:
 251   case Op_LoadS:   case Op_LoadUS:
 252   case Op_LoadI:   case Op_LoadL:
 253   case Op_LoadF:   case Op_LoadD:
 254   case Op_LoadP:   case Op_LoadN:


 255     *start = 0;
 256     *end   = 0; // no vector operands
 257     break;
 258   case Op_StoreB:  case Op_StoreC:
 259   case Op_StoreI:  case Op_StoreL:
 260   case Op_StoreF:  case Op_StoreD:
 261   case Op_StoreP:  case Op_StoreN:
 262     *start = MemNode::ValueIn;
 263     *end   = MemNode::ValueIn + 1; // 1 vector operand
 264     break;
 265   case Op_LShiftI:  case Op_LShiftL:
 266   case Op_RShiftI:  case Op_RShiftL:
 267   case Op_URShiftI: case Op_URShiftL:
 268     *start = 1;
 269     *end   = 2; // 1 vector operand
 270     break;
 271   case Op_AddI: case Op_AddL: case Op_AddF: case Op_AddD:
 272   case Op_SubI: case Op_SubL: case Op_SubF: case Op_SubD:
 273   case Op_MulI: case Op_MulL: case Op_MulF: case Op_MulD:
 274   case Op_DivF: case Op_DivD:




 235   case Op_ReplicateB:
 236   case Op_ReplicateS:
 237   case Op_ReplicateI:
 238   case Op_ReplicateL:
 239   case Op_ReplicateF:
 240   case Op_ReplicateD:
 241     return true;
 242   default:
 243     return false;
 244   }
 245 }
 246 
 247 // [Start, end) half-open range defining which operands are vectors
 248 void VectorNode::vector_operands(Node* n, uint* start, uint* end) {
 249   switch (n->Opcode()) {
 250   case Op_LoadB:   case Op_LoadUB:
 251   case Op_LoadS:   case Op_LoadUS:
 252   case Op_LoadI:   case Op_LoadL:
 253   case Op_LoadF:   case Op_LoadD:
 254   case Op_LoadP:   case Op_LoadN:
 255   case Op_LoadBarrierSlowReg:
 256   case Op_LoadBarrierWeakSlowReg:
 257     *start = 0;
 258     *end   = 0; // no vector operands
 259     break;
 260   case Op_StoreB:  case Op_StoreC:
 261   case Op_StoreI:  case Op_StoreL:
 262   case Op_StoreF:  case Op_StoreD:
 263   case Op_StoreP:  case Op_StoreN:
 264     *start = MemNode::ValueIn;
 265     *end   = MemNode::ValueIn + 1; // 1 vector operand
 266     break;
 267   case Op_LShiftI:  case Op_LShiftL:
 268   case Op_RShiftI:  case Op_RShiftL:
 269   case Op_URShiftI: case Op_URShiftL:
 270     *start = 1;
 271     *end   = 2; // 1 vector operand
 272     break;
 273   case Op_AddI: case Op_AddL: case Op_AddF: case Op_AddD:
 274   case Op_SubI: case Op_SubL: case Op_SubF: case Op_SubD:
 275   case Op_MulI: case Op_MulL: case Op_MulF: case Op_MulD:
 276   case Op_DivF: case Op_DivD:


< prev index next >