< prev index next >

src/hotspot/share/opto/vectorIntrinsics.cpp

Print this page
*** 1215,10 ***
--- 1215,11 ---
    const TypeInt*     vlen             = gvn().type(argument(3))->isa_int();
    const TypeInstPtr* vector_idx_klass = gvn().type(argument(4))->isa_instptr();
    const TypeInt*     idx_vlen         = gvn().type(argument(5))->isa_int();
  
    if (vector_klass     == nullptr || vector_klass->const_oop()     == nullptr ||
+ //      mask_klass       == nullptr || mask_klass->const_oop()       == nullptr ||
        elem_klass       == nullptr || elem_klass->const_oop()       == nullptr ||
        vlen             == nullptr || !vlen->is_con() ||
        vector_idx_klass == nullptr || vector_idx_klass->const_oop() == nullptr ||
        idx_vlen         == nullptr || !idx_vlen->is_con()) {
      log_if_needed("  ** missing constant: vclass=%s etype=%s vlen=%s viclass=%s idx_vlen=%s",

*** 1399,10 ***
--- 1400,11 ---
    const TypeInstPtr* elem_klass   = gvn().type(argument(3))->isa_instptr();
    const TypeInt*     vlen         = gvn().type(argument(4))->isa_int();
  
    if (opr          == nullptr || !opr->is_con() ||
        vector_klass == nullptr || vector_klass->const_oop() == nullptr ||
+ //      mask_klass   == nullptr || mask_klass->const_oop()   == nullptr ||
        elem_klass   == nullptr || elem_klass->const_oop()   == nullptr ||
        vlen         == nullptr || !vlen->is_con()) {
      log_if_needed("  ** missing constant: opr=%s vclass=%s etype=%s vlen=%s",
                      NodeClassNames[argument(0)->Opcode()],
                      NodeClassNames[argument(1)->Opcode()],

*** 2497,14 ***
    const TypeInstPtr* vector_klass = gvn().type(argument(0))->isa_instptr();
    const TypeInstPtr* elem_klass   = gvn().type(argument(1))->isa_instptr();
    const TypeInt*     vlen         = gvn().type(argument(2))->isa_int();
    const TypeInt*     idx          = gvn().type(argument(4))->isa_int();
  
!   if (vector_klass == nullptr || vector_klass->const_oop() == nullptr ||
!       elem_klass   == nullptr || elem_klass->const_oop()   == nullptr ||
!       vlen         == nullptr || !vlen->is_con() ||
!       idx          == nullptr || !idx->is_con()) {
      log_if_needed("  ** missing constant: vclass=%s etype=%s vlen=%s",
                      NodeClassNames[argument(0)->Opcode()],
                      NodeClassNames[argument(1)->Opcode()],
                      NodeClassNames[argument(2)->Opcode()]);
      return false; // not enough info for intrinsification
--- 2499,14 ---
    const TypeInstPtr* vector_klass = gvn().type(argument(0))->isa_instptr();
    const TypeInstPtr* elem_klass   = gvn().type(argument(1))->isa_instptr();
    const TypeInt*     vlen         = gvn().type(argument(2))->isa_int();
    const TypeInt*     idx          = gvn().type(argument(4))->isa_int();
  
!   if (vector_klass == nullptr || elem_klass == nullptr || vlen == nullptr || idx == nullptr) {
!     return false; // dead code
!   }
!   if (vector_klass->const_oop() == nullptr || elem_klass->const_oop() == nullptr || !vlen->is_con() || !idx->is_con()) {
      log_if_needed("  ** missing constant: vclass=%s etype=%s vlen=%s",
                      NodeClassNames[argument(0)->Opcode()],
                      NodeClassNames[argument(1)->Opcode()],
                      NodeClassNames[argument(2)->Opcode()]);
      return false; // not enough info for intrinsification
< prev index next >