< prev index next >

src/share/vm/opto/vectornode.hpp

Print this page
rev 9026 : 8138583: aarch64: add support for vectorizing fabs/fneg
Reviewed-by: aph


 292   virtual const Type* bottom_type() const { return Type::DOUBLE; }
 293   virtual uint ideal_reg() const { return Op_RegD; }
 294 };
 295 
 296 //------------------------------DivVFNode--------------------------------------
 297 // Vector divide float
 298 class DivVFNode : public VectorNode {
 299  public:
 300   DivVFNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {}
 301   virtual int Opcode() const;
 302 };
 303 
 304 //------------------------------DivVDNode--------------------------------------
 305 // Vector Divide double
 306 class DivVDNode : public VectorNode {
 307  public:
 308   DivVDNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {}
 309   virtual int Opcode() const;
 310 };
 311 
































 312 //------------------------------SqrtVDNode--------------------------------------
 313 // Vector Sqrt double
 314 class SqrtVDNode : public VectorNode {
 315  public:
 316   SqrtVDNode(Node* in, const TypeVect* vt) : VectorNode(in,vt) {}
 317   virtual int Opcode() const;
 318 };
 319 
 320 //------------------------------LShiftVBNode-----------------------------------
 321 // Vector left shift bytes
 322 class LShiftVBNode : public VectorNode {
 323  public:
 324   LShiftVBNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {}
 325   virtual int Opcode() const;
 326 };
 327 
 328 //------------------------------LShiftVSNode-----------------------------------
 329 // Vector left shift shorts
 330 class LShiftVSNode : public VectorNode {
 331  public:




 292   virtual const Type* bottom_type() const { return Type::DOUBLE; }
 293   virtual uint ideal_reg() const { return Op_RegD; }
 294 };
 295 
 296 //------------------------------DivVFNode--------------------------------------
 297 // Vector divide float
 298 class DivVFNode : public VectorNode {
 299  public:
 300   DivVFNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {}
 301   virtual int Opcode() const;
 302 };
 303 
 304 //------------------------------DivVDNode--------------------------------------
 305 // Vector Divide double
 306 class DivVDNode : public VectorNode {
 307  public:
 308   DivVDNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {}
 309   virtual int Opcode() const;
 310 };
 311 
 312 //------------------------------AbsVFNode--------------------------------------
 313 // Vector Abs float
 314 class AbsVFNode : public VectorNode {
 315  public:
 316   AbsVFNode(Node* in, const TypeVect* vt) : VectorNode(in,vt) {}
 317   virtual int Opcode() const;
 318 };
 319 
 320 //------------------------------AbsVDNode--------------------------------------
 321 // Vector Abs double
 322 class AbsVDNode : public VectorNode {
 323  public:
 324   AbsVDNode(Node* in, const TypeVect* vt) : VectorNode(in,vt) {}
 325   virtual int Opcode() const;
 326 };
 327 
 328 //------------------------------NegVFNode--------------------------------------
 329 // Vector Neg float
 330 class NegVFNode : public VectorNode {
 331  public:
 332   NegVFNode(Node* in, const TypeVect* vt) : VectorNode(in,vt) {}
 333   virtual int Opcode() const;
 334 };
 335 
 336 //------------------------------NegVDNode--------------------------------------
 337 // Vector Neg double
 338 class NegVDNode : public VectorNode {
 339  public:
 340   NegVDNode(Node* in, const TypeVect* vt) : VectorNode(in,vt) {}
 341   virtual int Opcode() const;
 342 };
 343 
 344 //------------------------------SqrtVDNode--------------------------------------
 345 // Vector Sqrt double
 346 class SqrtVDNode : public VectorNode {
 347  public:
 348   SqrtVDNode(Node* in, const TypeVect* vt) : VectorNode(in,vt) {}
 349   virtual int Opcode() const;
 350 };
 351 
 352 //------------------------------LShiftVBNode-----------------------------------
 353 // Vector left shift bytes
 354 class LShiftVBNode : public VectorNode {
 355  public:
 356   LShiftVBNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1,in2,vt) {}
 357   virtual int Opcode() const;
 358 };
 359 
 360 //------------------------------LShiftVSNode-----------------------------------
 361 // Vector left shift shorts
 362 class LShiftVSNode : public VectorNode {
 363  public:


< prev index next >