RFR: 8333890: Fatal error in auto-vectorizer with float16 kernel [v2]

Jatin Bhateja jbhateja at openjdk.org
Mon Jul 8 11:24:39 UTC 2024


On Mon, 8 Jul 2024 10:47:29 GMT, Emanuel Peter <epeter at openjdk.org> wrote:

>> Thanks @vnkozlov for review and approval.
>
> @jatin-bhateja It seems we are using `TypeInt::SHORT`. But this is just a `INT_T` in the end. Hmm.
> 
> 
> //------------------------------ConvF2HFNode------------------------------------
> // Convert Float to Halffloat
> class ConvF2HFNode : public ConvertNode {
>   public:
>   ConvF2HFNode(Node* in1) : ConvertNode(TypeInt::SHORT, in1) {}
>   virtual int Opcode() const;
>   virtual const Type* in_type() const { return TypeInt::FLOAT; }
>   virtual const Type* Value(PhaseGVN* phase) const;
> };
> 
> 
> This seems to somewhat clash with an earlier comment here:
> 
> class ConvertNode : public TypeNode {
> protected:
>   ConvertNode(const Type* t, Node* input) : TypeNode(t, 2) {
>     init_class_id(Class_Convert);
>     init_req(1, input);
>   }
> public:
>   virtual const Type* in_type() const = 0;
>   virtual uint ideal_reg() const;
> 
>   // Create a convert node for a given input and output type.
>   // Conversions to and from half float are specified via T_SHORT.
>   static Node* create_convert(BasicType source, BasicType target, Node* input);
> };

Thanks @eme64  and @TobiHartmann , thanks for filing follow up bug and assigning it to me.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/20062#issuecomment-2213744384


More information about the hotspot-compiler-dev mailing list