~ubuntu-branches/ubuntu/raring/clamav/raring-updates

« back to all changes in this revision

Viewing changes to libclamav/c++/X86GenFastISel.inc

  • Committer: Bazaar Package Importer
  • Author(s): Scott Kitterman
  • Date: 2011-06-18 11:56:34 UTC
  • mfrom: (0.35.21 sid)
  • Revision ID: james.westby@ubuntu.com-20110618115634-u2lovivet0qx34d0
Tags: 0.97.1+dfsg-1ubuntu1
* Merge from debian unstable.  Remaining changes:
  - Drop build-dep on electric-fence (in Universe)
  - Add apparmor profiles for clamd and freshclam along with maintainer
    script changes

Show diffs side-by-side

added added

removed removed

Lines of Context:
96
96
  if ((Subtarget->hasAVX())) {
97
97
    return FastEmitInst_r(X86::VMOVDI2SSrr, X86::FR32RegisterClass, Op0, Op0IsKill);
98
98
  }
99
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
99
  if ((Subtarget->hasSSE2())) {
100
100
    return FastEmitInst_r(X86::MOVDI2SSrr, X86::FR32RegisterClass, Op0, Op0IsKill);
101
101
  }
102
102
  return 0;
103
103
}
104
104
 
105
105
unsigned FastEmit_ISD_BIT_CONVERT_MVT_i64_MVT_f64_r(unsigned Op0, bool Op0IsKill) {
106
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
106
  if ((Subtarget->hasSSE2())) {
107
107
    return FastEmitInst_r(X86::MOV64toSDrr, X86::FR64RegisterClass, Op0, Op0IsKill);
108
108
  }
109
109
  return 0;
142
142
  if ((Subtarget->hasAVX())) {
143
143
    return FastEmitInst_r(X86::VMOVSS2DIrr, X86::GR32RegisterClass, Op0, Op0IsKill);
144
144
  }
145
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
145
  if ((Subtarget->hasSSE2())) {
146
146
    return FastEmitInst_r(X86::MOVSS2DIrr, X86::GR32RegisterClass, Op0, Op0IsKill);
147
147
  }
148
148
  return 0;
149
149
}
150
150
 
151
151
unsigned FastEmit_ISD_BIT_CONVERT_MVT_f64_MVT_i64_r(unsigned Op0, bool Op0IsKill) {
152
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
152
  if ((Subtarget->hasSSE2())) {
153
153
    return FastEmitInst_r(X86::MOVSDto64rr, X86::GR64RegisterClass, Op0, Op0IsKill);
154
154
  }
155
155
  return 0;
420
420
unsigned FastEmit_ISD_FP_EXTEND_MVT_f32_r(MVT RetVT, unsigned Op0, bool Op0IsKill) {
421
421
  if (RetVT.SimpleTy != MVT::f64)
422
422
    return 0;
423
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
423
  if ((Subtarget->hasSSE2())) {
424
424
    return FastEmitInst_r(X86::CVTSS2SDrr, X86::FR64RegisterClass, Op0, Op0IsKill);
425
425
  }
426
426
  return 0;
438
438
unsigned FastEmit_ISD_FP_ROUND_MVT_f64_r(MVT RetVT, unsigned Op0, bool Op0IsKill) {
439
439
  if (RetVT.SimpleTy != MVT::f32)
440
440
    return 0;
441
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
441
  if ((Subtarget->hasSSE2())) {
442
442
    return FastEmitInst_r(X86::CVTSD2SSrr, X86::FR32RegisterClass, Op0, Op0IsKill);
443
443
  }
444
444
  return 0;
457
457
  if ((Subtarget->hasAVX())) {
458
458
    return FastEmitInst_r(X86::VCVTTSS2SIrr, X86::GR32RegisterClass, Op0, Op0IsKill);
459
459
  }
460
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
460
  if ((Subtarget->hasSSE1())) {
461
461
    return FastEmitInst_r(X86::CVTTSS2SIrr, X86::GR32RegisterClass, Op0, Op0IsKill);
462
462
  }
463
463
  return 0;
467
467
  if ((Subtarget->hasAVX())) {
468
468
    return FastEmitInst_r(X86::VCVTTSS2SI64rr, X86::GR64RegisterClass, Op0, Op0IsKill);
469
469
  }
470
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
470
  if ((Subtarget->hasSSE1())) {
471
471
    return FastEmitInst_r(X86::CVTTSS2SI64rr, X86::GR64RegisterClass, Op0, Op0IsKill);
472
472
  }
473
473
  return 0;
485
485
  if ((Subtarget->hasAVX())) {
486
486
    return FastEmitInst_r(X86::VCVTTSD2SIrr, X86::GR32RegisterClass, Op0, Op0IsKill);
487
487
  }
488
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
488
  if ((Subtarget->hasSSE2())) {
489
489
    return FastEmitInst_r(X86::CVTTSD2SIrr, X86::GR32RegisterClass, Op0, Op0IsKill);
490
490
  }
491
491
  return 0;
495
495
  if ((Subtarget->hasAVX())) {
496
496
    return FastEmitInst_r(X86::VCVTTSD2SI64rr, X86::GR64RegisterClass, Op0, Op0IsKill);
497
497
  }
498
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
498
  if ((Subtarget->hasSSE2())) {
499
499
    return FastEmitInst_r(X86::CVTTSD2SI64rr, X86::GR64RegisterClass, Op0, Op0IsKill);
500
500
  }
501
501
  return 0;
512
512
unsigned FastEmit_ISD_FP_TO_SINT_MVT_v4f32_r(MVT RetVT, unsigned Op0, bool Op0IsKill) {
513
513
  if (RetVT.SimpleTy != MVT::v4i32)
514
514
    return 0;
515
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
515
  if ((Subtarget->hasSSE2())) {
516
516
    return FastEmitInst_r(X86::Int_CVTTPS2DQrr, X86::VR128RegisterClass, Op0, Op0IsKill);
517
517
  }
518
518
  return 0;
521
521
unsigned FastEmit_ISD_FP_TO_SINT_MVT_v2f64_r(MVT RetVT, unsigned Op0, bool Op0IsKill) {
522
522
  if (RetVT.SimpleTy != MVT::v2i32)
523
523
    return 0;
524
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
524
  if ((Subtarget->hasSSE2())) {
525
525
    return FastEmitInst_r(X86::Int_CVTTPD2PIrr, X86::VR64RegisterClass, Op0, Op0IsKill);
526
526
  }
527
527
  return 0;
580
580
  if ((!Subtarget->hasSSE1())) {
581
581
    return FastEmitInst_r(X86::SQRT_Fp32, X86::RFP32RegisterClass, Op0, Op0IsKill);
582
582
  }
583
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
583
  if ((Subtarget->hasSSE1())) {
584
584
    return FastEmitInst_r(X86::SQRTSSr, X86::FR32RegisterClass, Op0, Op0IsKill);
585
585
  }
586
586
  return 0;
592
592
  if ((!Subtarget->hasSSE2())) {
593
593
    return FastEmitInst_r(X86::SQRT_Fp64, X86::RFP64RegisterClass, Op0, Op0IsKill);
594
594
  }
595
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
595
  if ((Subtarget->hasSSE2())) {
596
596
    return FastEmitInst_r(X86::SQRTSDr, X86::FR64RegisterClass, Op0, Op0IsKill);
597
597
  }
598
598
  return 0;
610
610
  if ((Subtarget->hasAVX())) {
611
611
    return FastEmitInst_r(X86::VSQRTPSr, X86::VR128RegisterClass, Op0, Op0IsKill);
612
612
  }
613
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
613
  if ((Subtarget->hasSSE1())) {
614
614
    return FastEmitInst_r(X86::SQRTPSr, X86::VR128RegisterClass, Op0, Op0IsKill);
615
615
  }
616
616
  return 0;
631
631
  if ((Subtarget->hasAVX())) {
632
632
    return FastEmitInst_r(X86::VSQRTPDr, X86::VR128RegisterClass, Op0, Op0IsKill);
633
633
  }
634
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
634
  if ((Subtarget->hasSSE2())) {
635
635
    return FastEmitInst_r(X86::SQRTPDr, X86::VR128RegisterClass, Op0, Op0IsKill);
636
636
  }
637
637
  return 0;
672
672
  if ((Subtarget->hasAVX())) {
673
673
    return FastEmitInst_r(X86::VMOVDI2PDIrr, X86::VR128RegisterClass, Op0, Op0IsKill);
674
674
  }
675
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
675
  if ((Subtarget->hasSSE2())) {
676
676
    return FastEmitInst_r(X86::MOVDI2PDIrr, X86::VR128RegisterClass, Op0, Op0IsKill);
677
677
  }
678
678
  return 0;
694
694
}
695
695
 
696
696
unsigned FastEmit_ISD_SCALAR_TO_VECTOR_MVT_i64_MVT_v2i64_r(unsigned Op0, bool Op0IsKill) {
697
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
697
  if ((Subtarget->hasSSE2())) {
698
698
    return FastEmitInst_r(X86::MOV64toPQIrr, X86::VR128RegisterClass, Op0, Op0IsKill);
699
699
  }
700
700
  return 0;
773
773
// FastEmit functions for ISD::SINT_TO_FP.
774
774
 
775
775
unsigned FastEmit_ISD_SINT_TO_FP_MVT_i32_MVT_f32_r(unsigned Op0, bool Op0IsKill) {
776
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
776
  if ((Subtarget->hasSSE1())) {
777
777
    return FastEmitInst_r(X86::CVTSI2SSrr, X86::FR32RegisterClass, Op0, Op0IsKill);
778
778
  }
779
779
  return 0;
780
780
}
781
781
 
782
782
unsigned FastEmit_ISD_SINT_TO_FP_MVT_i32_MVT_f64_r(unsigned Op0, bool Op0IsKill) {
783
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
783
  if ((Subtarget->hasSSE2())) {
784
784
    return FastEmitInst_r(X86::CVTSI2SDrr, X86::FR64RegisterClass, Op0, Op0IsKill);
785
785
  }
786
786
  return 0;
795
795
}
796
796
 
797
797
unsigned FastEmit_ISD_SINT_TO_FP_MVT_i64_MVT_f32_r(unsigned Op0, bool Op0IsKill) {
798
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
798
  if ((Subtarget->hasSSE1())) {
799
799
    return FastEmitInst_r(X86::CVTSI2SS64rr, X86::FR32RegisterClass, Op0, Op0IsKill);
800
800
  }
801
801
  return 0;
802
802
}
803
803
 
804
804
unsigned FastEmit_ISD_SINT_TO_FP_MVT_i64_MVT_f64_r(unsigned Op0, bool Op0IsKill) {
805
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
805
  if ((Subtarget->hasSSE2())) {
806
806
    return FastEmitInst_r(X86::CVTSI2SD64rr, X86::FR64RegisterClass, Op0, Op0IsKill);
807
807
  }
808
808
  return 0;
819
819
unsigned FastEmit_ISD_SINT_TO_FP_MVT_v2i32_r(MVT RetVT, unsigned Op0, bool Op0IsKill) {
820
820
  if (RetVT.SimpleTy != MVT::v2f64)
821
821
    return 0;
822
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
822
  if ((Subtarget->hasSSE2())) {
823
823
    return FastEmitInst_r(X86::Int_CVTPI2PDrr, X86::VR128RegisterClass, Op0, Op0IsKill);
824
824
  }
825
825
  return 0;
828
828
unsigned FastEmit_ISD_SINT_TO_FP_MVT_v4i32_r(MVT RetVT, unsigned Op0, bool Op0IsKill) {
829
829
  if (RetVT.SimpleTy != MVT::v4f32)
830
830
    return 0;
831
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
831
  if ((Subtarget->hasSSE2())) {
832
832
    return FastEmitInst_r(X86::Int_CVTDQ2PSrr, X86::VR128RegisterClass, Op0, Op0IsKill);
833
833
  }
834
834
  return 0;
1013
1013
unsigned FastEmit_X86ISD_FRCP_MVT_f32_r(MVT RetVT, unsigned Op0, bool Op0IsKill) {
1014
1014
  if (RetVT.SimpleTy != MVT::f32)
1015
1015
    return 0;
1016
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
1016
  if ((Subtarget->hasSSE1())) {
1017
1017
    return FastEmitInst_r(X86::RCPSSr, X86::FR32RegisterClass, Op0, Op0IsKill);
1018
1018
  }
1019
1019
  return 0;
1025
1025
  if ((Subtarget->hasAVX())) {
1026
1026
    return FastEmitInst_r(X86::VRCPPSr, X86::VR128RegisterClass, Op0, Op0IsKill);
1027
1027
  }
1028
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
1028
  if ((Subtarget->hasSSE1())) {
1029
1029
    return FastEmitInst_r(X86::RCPPSr, X86::VR128RegisterClass, Op0, Op0IsKill);
1030
1030
  }
1031
1031
  return 0;
1054
1054
unsigned FastEmit_X86ISD_FRSQRT_MVT_f32_r(MVT RetVT, unsigned Op0, bool Op0IsKill) {
1055
1055
  if (RetVT.SimpleTy != MVT::f32)
1056
1056
    return 0;
1057
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
1057
  if ((Subtarget->hasSSE1())) {
1058
1058
    return FastEmitInst_r(X86::RSQRTSSr, X86::FR32RegisterClass, Op0, Op0IsKill);
1059
1059
  }
1060
1060
  return 0;
1066
1066
  if ((Subtarget->hasAVX())) {
1067
1067
    return FastEmitInst_r(X86::VRSQRTPSr, X86::VR128RegisterClass, Op0, Op0IsKill);
1068
1068
  }
1069
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
1069
  if ((Subtarget->hasSSE1())) {
1070
1070
    return FastEmitInst_r(X86::RSQRTPSr, X86::VR128RegisterClass, Op0, Op0IsKill);
1071
1071
  }
1072
1072
  return 0;
1175
1175
  if ((Subtarget->hasAVX())) {
1176
1176
    return FastEmitInst_r(X86::VMOVZPQILo2PQIrr, X86::VR128RegisterClass, Op0, Op0IsKill);
1177
1177
  }
1178
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
1178
  if ((Subtarget->hasSSE2())) {
1179
1179
    return FastEmitInst_r(X86::MOVZPQILo2PQIrr, X86::VR128RegisterClass, Op0, Op0IsKill);
1180
1180
  }
1181
1181
  return 0;
1184
1184
unsigned FastEmit_X86ISD_VZEXT_MOVL_MVT_v2f64_r(MVT RetVT, unsigned Op0, bool Op0IsKill) {
1185
1185
  if (RetVT.SimpleTy != MVT::v2f64)
1186
1186
    return 0;
1187
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
1187
  if ((Subtarget->hasSSE2())) {
1188
1188
    return FastEmitInst_r(X86::MOVZPQILo2PQIrr, X86::VR128RegisterClass, Op0, Op0IsKill);
1189
1189
  }
1190
1190
  return 0;
1682
1682
  if ((Subtarget->hasAVX())) {
1683
1683
    return FastEmitInst_rr(X86::VPADDBrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1684
1684
  }
1685
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
1685
  if ((Subtarget->hasSSE2())) {
1686
1686
    return FastEmitInst_rr(X86::PADDBrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1687
1687
  }
1688
1688
  return 0;
1703
1703
  if ((Subtarget->hasAVX())) {
1704
1704
    return FastEmitInst_rr(X86::VPADDWrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1705
1705
  }
1706
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
1706
  if ((Subtarget->hasSSE2())) {
1707
1707
    return FastEmitInst_rr(X86::PADDWrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1708
1708
  }
1709
1709
  return 0;
1724
1724
  if ((Subtarget->hasAVX())) {
1725
1725
    return FastEmitInst_rr(X86::VPADDDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1726
1726
  }
1727
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
1727
  if ((Subtarget->hasSSE2())) {
1728
1728
    return FastEmitInst_rr(X86::PADDDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1729
1729
  }
1730
1730
  return 0;
1745
1745
  if ((Subtarget->hasAVX())) {
1746
1746
    return FastEmitInst_rr(X86::VPADDQrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1747
1747
  }
1748
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
1748
  if ((Subtarget->hasSSE2())) {
1749
1749
    return FastEmitInst_rr(X86::PADDQrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1750
1750
  }
1751
1751
  return 0;
1868
1868
  if ((Subtarget->hasAVX())) {
1869
1869
    return FastEmitInst_rr(X86::VPANDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1870
1870
  }
1871
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
1871
  if ((Subtarget->hasSSE1())) {
1872
1872
    return FastEmitInst_rr(X86::ANDPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1873
1873
  }
1874
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
1874
  if ((Subtarget->hasSSE2())) {
1875
1875
    return FastEmitInst_rr(X86::PANDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1876
1876
  }
1877
1877
  return 0;
1900
1900
  if ((Subtarget->hasAVX())) {
1901
1901
    return FastEmitInst_rr(X86::VADDSSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1902
1902
  }
1903
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
1903
  if ((Subtarget->hasSSE1())) {
1904
1904
    return FastEmitInst_rr(X86::ADDSSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1905
1905
  }
1906
1906
  return 0;
1915
1915
  if ((Subtarget->hasAVX())) {
1916
1916
    return FastEmitInst_rr(X86::VADDSDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1917
1917
  }
1918
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
1918
  if ((Subtarget->hasSSE2())) {
1919
1919
    return FastEmitInst_rr(X86::ADDSDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1920
1920
  }
1921
1921
  return 0;
1933
1933
  if ((Subtarget->hasAVX())) {
1934
1934
    return FastEmitInst_rr(X86::VADDPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1935
1935
  }
1936
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
1936
  if ((Subtarget->hasSSE1())) {
1937
1937
    return FastEmitInst_rr(X86::ADDPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1938
1938
  }
1939
1939
  return 0;
1954
1954
  if ((Subtarget->hasAVX())) {
1955
1955
    return FastEmitInst_rr(X86::VADDPDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1956
1956
  }
1957
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
1957
  if ((Subtarget->hasSSE2())) {
1958
1958
    return FastEmitInst_rr(X86::ADDPDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1959
1959
  }
1960
1960
  return 0;
1993
1993
  if ((Subtarget->hasAVX())) {
1994
1994
    return FastEmitInst_rr(X86::VDIVSSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1995
1995
  }
1996
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
1996
  if ((Subtarget->hasSSE1())) {
1997
1997
    return FastEmitInst_rr(X86::DIVSSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1998
1998
  }
1999
1999
  return 0;
2008
2008
  if ((Subtarget->hasAVX())) {
2009
2009
    return FastEmitInst_rr(X86::VDIVSDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2010
2010
  }
2011
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
2011
  if ((Subtarget->hasSSE2())) {
2012
2012
    return FastEmitInst_rr(X86::DIVSDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2013
2013
  }
2014
2014
  return 0;
2026
2026
  if ((Subtarget->hasAVX())) {
2027
2027
    return FastEmitInst_rr(X86::VDIVPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2028
2028
  }
2029
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
2029
  if ((Subtarget->hasSSE1())) {
2030
2030
    return FastEmitInst_rr(X86::DIVPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2031
2031
  }
2032
2032
  return 0;
2047
2047
  if ((Subtarget->hasAVX())) {
2048
2048
    return FastEmitInst_rr(X86::VDIVPDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2049
2049
  }
2050
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
2050
  if ((Subtarget->hasSSE2())) {
2051
2051
    return FastEmitInst_rr(X86::DIVPDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2052
2052
  }
2053
2053
  return 0;
2086
2086
  if ((Subtarget->hasAVX())) {
2087
2087
    return FastEmitInst_rr(X86::VMULSSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2088
2088
  }
2089
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
2089
  if ((Subtarget->hasSSE1())) {
2090
2090
    return FastEmitInst_rr(X86::MULSSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2091
2091
  }
2092
2092
  return 0;
2101
2101
  if ((Subtarget->hasAVX())) {
2102
2102
    return FastEmitInst_rr(X86::VMULSDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2103
2103
  }
2104
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
2104
  if ((Subtarget->hasSSE2())) {
2105
2105
    return FastEmitInst_rr(X86::MULSDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2106
2106
  }
2107
2107
  return 0;
2119
2119
  if ((Subtarget->hasAVX())) {
2120
2120
    return FastEmitInst_rr(X86::VMULPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2121
2121
  }
2122
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
2122
  if ((Subtarget->hasSSE1())) {
2123
2123
    return FastEmitInst_rr(X86::MULPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2124
2124
  }
2125
2125
  return 0;
2140
2140
  if ((Subtarget->hasAVX())) {
2141
2141
    return FastEmitInst_rr(X86::VMULPDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2142
2142
  }
2143
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
2143
  if ((Subtarget->hasSSE2())) {
2144
2144
    return FastEmitInst_rr(X86::MULPDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2145
2145
  }
2146
2146
  return 0;
2179
2179
  if ((Subtarget->hasAVX())) {
2180
2180
    return FastEmitInst_rr(X86::VSUBSSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2181
2181
  }
2182
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
2182
  if ((Subtarget->hasSSE1())) {
2183
2183
    return FastEmitInst_rr(X86::SUBSSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2184
2184
  }
2185
2185
  return 0;
2194
2194
  if ((Subtarget->hasAVX())) {
2195
2195
    return FastEmitInst_rr(X86::VSUBSDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2196
2196
  }
2197
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
2197
  if ((Subtarget->hasSSE2())) {
2198
2198
    return FastEmitInst_rr(X86::SUBSDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2199
2199
  }
2200
2200
  return 0;
2212
2212
  if ((Subtarget->hasAVX())) {
2213
2213
    return FastEmitInst_rr(X86::VSUBPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2214
2214
  }
2215
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
2215
  if ((Subtarget->hasSSE1())) {
2216
2216
    return FastEmitInst_rr(X86::SUBPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2217
2217
  }
2218
2218
  return 0;
2233
2233
  if ((Subtarget->hasAVX())) {
2234
2234
    return FastEmitInst_rr(X86::VSUBPDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2235
2235
  }
2236
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
2236
  if ((Subtarget->hasSSE2())) {
2237
2237
    return FastEmitInst_rr(X86::SUBPDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2238
2238
  }
2239
2239
  return 0;
2303
2303
  if ((Subtarget->hasAVX())) {
2304
2304
    return FastEmitInst_rr(X86::VPMULLWrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2305
2305
  }
2306
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
2306
  if ((Subtarget->hasSSE2())) {
2307
2307
    return FastEmitInst_rr(X86::PMULLWrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2308
2308
  }
2309
2309
  return 0;
2315
2315
  if ((Subtarget->hasAVX())) {
2316
2316
    return FastEmitInst_rr(X86::VPMULLDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2317
2317
  }
2318
 
  if ((Subtarget->hasSSE41() && !Subtarget->hasAVX())) {
 
2318
  if ((Subtarget->hasSSE41())) {
2319
2319
    return FastEmitInst_rr(X86::PMULLDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2320
2320
  }
2321
2321
  return 0;
2375
2375
  if ((Subtarget->hasAVX())) {
2376
2376
    return FastEmitInst_rr(X86::VPORrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2377
2377
  }
2378
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
2378
  if ((Subtarget->hasSSE1())) {
2379
2379
    return FastEmitInst_rr(X86::ORPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2380
2380
  }
2381
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
2381
  if ((Subtarget->hasSSE2())) {
2382
2382
    return FastEmitInst_rr(X86::PORrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2383
2383
  }
2384
2384
  return 0;
2517
2517
  if ((Subtarget->hasAVX())) {
2518
2518
    return FastEmitInst_rr(X86::VPSUBBrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2519
2519
  }
2520
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
2520
  if ((Subtarget->hasSSE2())) {
2521
2521
    return FastEmitInst_rr(X86::PSUBBrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2522
2522
  }
2523
2523
  return 0;
2538
2538
  if ((Subtarget->hasAVX())) {
2539
2539
    return FastEmitInst_rr(X86::VPSUBWrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2540
2540
  }
2541
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
2541
  if ((Subtarget->hasSSE2())) {
2542
2542
    return FastEmitInst_rr(X86::PSUBWrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2543
2543
  }
2544
2544
  return 0;
2559
2559
  if ((Subtarget->hasAVX())) {
2560
2560
    return FastEmitInst_rr(X86::VPSUBDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2561
2561
  }
2562
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
2562
  if ((Subtarget->hasSSE2())) {
2563
2563
    return FastEmitInst_rr(X86::PSUBDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2564
2564
  }
2565
2565
  return 0;
2580
2580
  if ((Subtarget->hasAVX())) {
2581
2581
    return FastEmitInst_rr(X86::VPSUBQrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2582
2582
  }
2583
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
2583
  if ((Subtarget->hasSSE2())) {
2584
2584
    return FastEmitInst_rr(X86::PSUBQrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2585
2585
  }
2586
2586
  return 0;
2703
2703
  if ((Subtarget->hasAVX())) {
2704
2704
    return FastEmitInst_rr(X86::VPXORrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2705
2705
  }
2706
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
2706
  if ((Subtarget->hasSSE1())) {
2707
2707
    return FastEmitInst_rr(X86::XORPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2708
2708
  }
2709
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
2709
  if ((Subtarget->hasSSE2())) {
2710
2710
    return FastEmitInst_rr(X86::PXORrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2711
2711
  }
2712
2712
  return 0;
2788
2788
  if ((Subtarget->hasAVX())) {
2789
2789
    return FastEmitInst_rr(X86::VUCOMISSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2790
2790
  }
2791
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
2791
  if ((Subtarget->hasSSE1())) {
2792
2792
    return FastEmitInst_rr(X86::UCOMISSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2793
2793
  }
2794
2794
  return 0;
2803
2803
  if ((Subtarget->hasAVX())) {
2804
2804
    return FastEmitInst_rr(X86::VUCOMISDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2805
2805
  }
2806
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
2806
  if ((Subtarget->hasSSE2())) {
2807
2807
    return FastEmitInst_rr(X86::UCOMISDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2808
2808
  }
2809
2809
  return 0;
2836
2836
  if ((Subtarget->hasAVX())) {
2837
2837
    return FastEmitInst_rr(X86::Int_VCOMISSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2838
2838
  }
2839
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
2839
  if ((Subtarget->hasSSE1())) {
2840
2840
    return FastEmitInst_rr(X86::Int_COMISSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2841
2841
  }
2842
2842
  return 0;
2848
2848
  if ((Subtarget->hasAVX())) {
2849
2849
    return FastEmitInst_rr(X86::Int_VCOMISDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2850
2850
  }
2851
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
2851
  if ((Subtarget->hasSSE2())) {
2852
2852
    return FastEmitInst_rr(X86::Int_COMISDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2853
2853
  }
2854
2854
  return 0;
2870
2870
  if ((Subtarget->hasAVX())) {
2871
2871
    return FastEmitInst_rr(X86::VFsANDPSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2872
2872
  }
2873
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
2873
  if ((Subtarget->hasSSE1())) {
2874
2874
    return FastEmitInst_rr(X86::FsANDPSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2875
2875
  }
2876
2876
  return 0;
2882
2882
  if ((Subtarget->hasAVX())) {
2883
2883
    return FastEmitInst_rr(X86::VFsANDPDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2884
2884
  }
2885
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
2885
  if ((Subtarget->hasSSE2())) {
2886
2886
    return FastEmitInst_rr(X86::FsANDPDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2887
2887
  }
2888
2888
  return 0;
2904
2904
  if ((Subtarget->hasAVX())) {
2905
2905
    return FastEmitInst_rr(X86::VMAXSSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2906
2906
  }
2907
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
2907
  if ((Subtarget->hasSSE1())) {
2908
2908
    return FastEmitInst_rr(X86::MAXSSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2909
2909
  }
2910
2910
  return 0;
2916
2916
  if ((Subtarget->hasAVX())) {
2917
2917
    return FastEmitInst_rr(X86::VMAXSDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2918
2918
  }
2919
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
2919
  if ((Subtarget->hasSSE2())) {
2920
2920
    return FastEmitInst_rr(X86::MAXSDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2921
2921
  }
2922
2922
  return 0;
2928
2928
  if ((Subtarget->hasAVX())) {
2929
2929
    return FastEmitInst_rr(X86::VMAXPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2930
2930
  }
2931
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
2931
  if ((Subtarget->hasSSE1())) {
2932
2932
    return FastEmitInst_rr(X86::MAXPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2933
2933
  }
2934
2934
  return 0;
2949
2949
  if ((Subtarget->hasAVX())) {
2950
2950
    return FastEmitInst_rr(X86::VMAXPDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2951
2951
  }
2952
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
2952
  if ((Subtarget->hasSSE2())) {
2953
2953
    return FastEmitInst_rr(X86::MAXPDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2954
2954
  }
2955
2955
  return 0;
2984
2984
  if ((Subtarget->hasAVX())) {
2985
2985
    return FastEmitInst_rr(X86::VMINSSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2986
2986
  }
2987
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
2987
  if ((Subtarget->hasSSE1())) {
2988
2988
    return FastEmitInst_rr(X86::MINSSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2989
2989
  }
2990
2990
  return 0;
2996
2996
  if ((Subtarget->hasAVX())) {
2997
2997
    return FastEmitInst_rr(X86::VMINSDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2998
2998
  }
2999
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
2999
  if ((Subtarget->hasSSE2())) {
3000
3000
    return FastEmitInst_rr(X86::MINSDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3001
3001
  }
3002
3002
  return 0;
3008
3008
  if ((Subtarget->hasAVX())) {
3009
3009
    return FastEmitInst_rr(X86::VMINPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3010
3010
  }
3011
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
3011
  if ((Subtarget->hasSSE1())) {
3012
3012
    return FastEmitInst_rr(X86::MINPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3013
3013
  }
3014
3014
  return 0;
3029
3029
  if ((Subtarget->hasAVX())) {
3030
3030
    return FastEmitInst_rr(X86::VMINPDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3031
3031
  }
3032
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
3032
  if ((Subtarget->hasSSE2())) {
3033
3033
    return FastEmitInst_rr(X86::MINPDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3034
3034
  }
3035
3035
  return 0;
3064
3064
  if ((Subtarget->hasAVX())) {
3065
3065
    return FastEmitInst_rr(X86::VFsORPSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3066
3066
  }
3067
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
3067
  if ((Subtarget->hasSSE1())) {
3068
3068
    return FastEmitInst_rr(X86::FsORPSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3069
3069
  }
3070
3070
  return 0;
3076
3076
  if ((Subtarget->hasAVX())) {
3077
3077
    return FastEmitInst_rr(X86::VFsORPDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3078
3078
  }
3079
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
3079
  if ((Subtarget->hasSSE2())) {
3080
3080
    return FastEmitInst_rr(X86::FsORPDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3081
3081
  }
3082
3082
  return 0;
3098
3098
  if ((Subtarget->hasAVX())) {
3099
3099
    return FastEmitInst_rr(X86::VFsXORPSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3100
3100
  }
3101
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
3101
  if ((Subtarget->hasSSE1())) {
3102
3102
    return FastEmitInst_rr(X86::FsXORPSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3103
3103
  }
3104
3104
  return 0;
3110
3110
  if ((Subtarget->hasAVX())) {
3111
3111
    return FastEmitInst_rr(X86::VFsXORPDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3112
3112
  }
3113
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
3113
  if ((Subtarget->hasSSE2())) {
3114
3114
    return FastEmitInst_rr(X86::FsXORPDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3115
3115
  }
3116
3116
  return 0;
3342
3342
unsigned FastEmit_X86ISD_PSHUFB_MVT_v16i8_rr(MVT RetVT, unsigned Op0, bool Op0IsKill, unsigned Op1, bool Op1IsKill) {
3343
3343
  if (RetVT.SimpleTy != MVT::v16i8)
3344
3344
    return 0;
3345
 
  if ((Subtarget->hasSSSE3() && !Subtarget->hasAVX())) {
 
3345
  if ((Subtarget->hasSSSE3())) {
3346
3346
    return FastEmitInst_rr(X86::PSHUFBrr128, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3347
3347
  }
3348
3348
  return 0;
3372
3372
  if ((Subtarget->hasAVX())) {
3373
3373
    return FastEmitInst_rr(X86::VPTESTrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3374
3374
  }
3375
 
  if ((Subtarget->hasSSE41() && !Subtarget->hasAVX())) {
 
3375
  if ((Subtarget->hasSSE41())) {
3376
3376
    return FastEmitInst_rr(X86::PTESTrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3377
3377
  }
3378
3378
  return 0;
3562
3562
  if ((Subtarget->hasAVX())) {
3563
3563
    return FastEmitInst_rr(X86::Int_VUCOMISSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3564
3564
  }
3565
 
  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
 
3565
  if ((Subtarget->hasSSE1())) {
3566
3566
    return FastEmitInst_rr(X86::Int_UCOMISSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3567
3567
  }
3568
3568
  return 0;
3574
3574
  if ((Subtarget->hasAVX())) {
3575
3575
    return FastEmitInst_rr(X86::Int_VUCOMISDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3576
3576
  }
3577
 
  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
 
3577
  if ((Subtarget->hasSSE2())) {
3578
3578
    return FastEmitInst_rr(X86::Int_UCOMISDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3579
3579
  }
3580
3580
  return 0;