@@ -1753,9 +1753,7 @@ SparcTargetLowering::SparcTargetLowering(const TargetMachine &TM,
17531753
17541754 setOperationAction (ISD::CTPOP, MVT::i64 ,
17551755 Subtarget->usePopc () ? Legal : Expand);
1756- setOperationAction (ISD::CTTZ , MVT::i64 , Expand);
1757- setOperationAction (ISD::CTLZ, MVT::i64 ,
1758- Subtarget->isVIS3 () ? Legal : Expand);
1756+ setOperationAction (ISD::CTTZ, MVT::i64 , Expand);
17591757 setOperationAction (ISD::BSWAP, MVT::i64 , Expand);
17601758 setOperationAction (ISD::ROTL , MVT::i64 , Expand);
17611759 setOperationAction (ISD::ROTR , MVT::i64 , Expand);
@@ -1816,9 +1814,7 @@ SparcTargetLowering::SparcTargetLowering(const TargetMachine &TM,
18161814 setOperationAction (ISD::FSINCOS, MVT::f32 , Expand);
18171815 setOperationAction (ISD::FREM , MVT::f32 , Expand);
18181816 setOperationAction (ISD::FMA , MVT::f32 , Expand);
1819- setOperationAction (ISD::CTTZ , MVT::i32 , Expand);
1820- setOperationAction (ISD::CTLZ, MVT::i32 ,
1821- Subtarget->isVIS3 () ? Promote : Expand);
1817+ setOperationAction (ISD::CTTZ, MVT::i32 , Expand);
18221818 setOperationAction (ISD::ROTL , MVT::i32 , Expand);
18231819 setOperationAction (ISD::ROTR , MVT::i32 , Expand);
18241820 setOperationAction (ISD::BSWAP, MVT::i32 , Expand);
@@ -1990,12 +1986,18 @@ SparcTargetLowering::SparcTargetLowering(const TargetMachine &TM,
19901986 setOperationAction (ISD::READCYCLECOUNTER, MVT::i64 , Custom);
19911987
19921988 if (Subtarget->isVIS3 ()) {
1993- setOperationAction (ISD::CTLZ_ZERO_UNDEF, MVT::i32 , Promote);
1989+ setOperationAction (ISD::CTLZ, MVT::i32 , Legal);
1990+ setOperationAction (ISD::CTLZ, MVT::i64 , Legal);
1991+ setOperationAction (ISD::CTLZ_ZERO_UNDEF, MVT::i32 , Legal);
19941992 setOperationAction (ISD::CTLZ_ZERO_UNDEF, MVT::i64 , Legal);
19951993 } else if (Subtarget->usePopc ()) {
1994+ setOperationAction (ISD::CTLZ, MVT::i32 , Expand);
1995+ setOperationAction (ISD::CTLZ, MVT::i64 , Expand);
19961996 setOperationAction (ISD::CTLZ_ZERO_UNDEF, MVT::i32 , Expand);
19971997 setOperationAction (ISD::CTLZ_ZERO_UNDEF, MVT::i64 , Expand);
19981998 } else {
1999+ setOperationAction (ISD::CTLZ, MVT::i32 , Expand);
2000+ setOperationAction (ISD::CTLZ, MVT::i64 , Expand);
19992001 setOperationAction (ISD::CTLZ_ZERO_UNDEF, MVT::i32 ,
20002002 Subtarget->is64Bit () ? Promote : LibCall);
20012003 setOperationAction (ISD::CTLZ_ZERO_UNDEF, MVT::i64 , LibCall);
0 commit comments