364 AbsVDNode(Node* in, const TypeVect* vt) : VectorNode(in,vt) {}
365 virtual int Opcode() const;
366 };
367
368 //------------------------------NegVFNode--------------------------------------
369 // Vector Neg float
370 class NegVFNode : public VectorNode {
371 public:
372 NegVFNode(Node* in, const TypeVect* vt) : VectorNode(in,vt) {}
373 virtual int Opcode() const;
374 };
375
376 //------------------------------NegVDNode--------------------------------------
377 // Vector Neg double
378 class NegVDNode : public VectorNode {
379 public:
380 NegVDNode(Node* in, const TypeVect* vt) : VectorNode(in,vt) {}
381 virtual int Opcode() const;
382 };
383
384 //------------------------------SqrtVFNode--------------------------------------
385 // Vector Sqrt float
386 class SqrtVFNode : public VectorNode {
387 public:
388 SqrtVFNode(Node* in, const TypeVect* vt) : VectorNode(in,vt) {}
389 virtual int Opcode() const;
390 };
391
392 //------------------------------SqrtVDNode--------------------------------------
393 // Vector Sqrt double
394 class SqrtVDNode : public VectorNode {
395 public:
396 SqrtVDNode(Node* in, const TypeVect* vt) : VectorNode(in,vt) {}
397 virtual int Opcode() const;
398 };
399
400 //------------------------------LShiftVBNode-----------------------------------
401 // Vector left shift bytes
402 class LShiftVBNode : public VectorNode {
403 public:
|
364 AbsVDNode(Node* in, const TypeVect* vt) : VectorNode(in,vt) {}
365 virtual int Opcode() const;
366 };
367
368 //------------------------------NegVFNode--------------------------------------
369 // Vector Neg float
370 class NegVFNode : public VectorNode {
371 public:
372 NegVFNode(Node* in, const TypeVect* vt) : VectorNode(in,vt) {}
373 virtual int Opcode() const;
374 };
375
376 //------------------------------NegVDNode--------------------------------------
377 // Vector Neg double
378 class NegVDNode : public VectorNode {
379 public:
380 NegVDNode(Node* in, const TypeVect* vt) : VectorNode(in,vt) {}
381 virtual int Opcode() const;
382 };
383
384 //------------------------------PopCountVINode---------------------------------
385 // Vector popcount integer bits
386 class PopCountVINode : public VectorNode {
387 public:
388 PopCountVINode(Node* in, const TypeVect* vt) : VectorNode(in,vt) {}
389 virtual int Opcode() const;
390 };
391
392 //------------------------------SqrtVFNode--------------------------------------
393 // Vector Sqrt float
394 class SqrtVFNode : public VectorNode {
395 public:
396 SqrtVFNode(Node* in, const TypeVect* vt) : VectorNode(in,vt) {}
397 virtual int Opcode() const;
398 };
399
400 //------------------------------SqrtVDNode--------------------------------------
401 // Vector Sqrt double
402 class SqrtVDNode : public VectorNode {
403 public:
404 SqrtVDNode(Node* in, const TypeVect* vt) : VectorNode(in,vt) {}
405 virtual int Opcode() const;
406 };
407
408 //------------------------------LShiftVBNode-----------------------------------
409 // Vector left shift bytes
410 class LShiftVBNode : public VectorNode {
411 public:
|