@@ -3117,41 +3117,41 @@ static bool interp__builtin_cmp_mask(InterpState &S, CodePtr OpPC,
31173117 unsigned VectorLen = LHS.getNumElems ();
31183118 PrimType ElemT = LHS.getFieldDesc ()->getPrimType ();
31193119
3120- for (unsigned ElemNum = 0 ; ElemNum < VectorLen; ++ElemNum) {
3121- INT_TYPE_SWITCH_NO_BOOL (ElemT, {
3122- const APSInt &A = LHS.elem <T>(ElemNum).toAPSInt ();
3123- const APSInt &B = RHS.elem <T>(ElemNum).toAPSInt ();
3124- bool Result = false ;
3125- switch (Opcode.getExtValue () & 0x7 ) {
3126- case 0x00 : // _MM_CMPINT_EQ
3127- Result = (A == B);
3128- break ;
3129- case 0x01 : // _MM_CMPINT_LT
3130- Result = IsUnsigned ? A.ult (B) : A.slt (B);
3131- break ;
3132- case 0x02 : // _MM_CMPINT_LE
3133- Result = IsUnsigned ? A.ule (B) : A.sle (B);
3134- break ;
3135- case 0x03 : // _MM_CMPINT_FALSE
3136- Result = false ;
3137- break ;
3138- case 0x04 : // _MM_CMPINT_NE
3139- Result = (A != B);
3140- break ;
3141- case 0x05 : // _MM_CMPINT_NLT (>=)
3142- Result = IsUnsigned ? A.uge (B) : A.sge (B);
3143- break ;
3144- case 0x06 : // _MM_CMPINT_NLE (>)
3145- Result = IsUnsigned ? A.ugt (B) : A.sgt (B);
3146- break ;
3147- case 0x07 : // _MM_CMPINT_TRUE
3148- Result = true ;
3149- break ;
3150- }
3120+ for (unsigned ElemNum = 0 ; ElemNum < VectorLen; ++ElemNum) {
3121+ INT_TYPE_SWITCH_NO_BOOL (ElemT, {
3122+ const APSInt &A = LHS.elem <T>(ElemNum).toAPSInt ();
3123+ const APSInt &B = RHS.elem <T>(ElemNum).toAPSInt ();
3124+ bool Result = false ;
3125+ switch (Opcode.getExtValue () & 0x7 ) {
3126+ case 0x00 : // _MM_CMPINT_EQ
3127+ Result = (A == B);
3128+ break ;
3129+ case 0x01 : // _MM_CMPINT_LT
3130+ Result = IsUnsigned ? A.ult (B) : A.slt (B);
3131+ break ;
3132+ case 0x02 : // _MM_CMPINT_LE
3133+ Result = IsUnsigned ? A.ule (B) : A.sle (B);
3134+ break ;
3135+ case 0x03 : // _MM_CMPINT_FALSE
3136+ Result = false ;
3137+ break ;
3138+ case 0x04 : // _MM_CMPINT_NE
3139+ Result = (A != B);
3140+ break ;
3141+ case 0x05 : // _MM_CMPINT_NLT (>=)
3142+ Result = IsUnsigned ? A.uge (B) : A.sge (B);
3143+ break ;
3144+ case 0x06 : // _MM_CMPINT_NLE (>)
3145+ Result = IsUnsigned ? A.ugt (B) : A.sgt (B);
3146+ break ;
3147+ case 0x07 : // _MM_CMPINT_TRUE
3148+ Result = true ;
3149+ break ;
3150+ }
31513151
3152- RetMask.setBitVal (ElemNum, Mask[ElemNum] && Result);
3153- });
3154- }
3152+ RetMask.setBitVal (ElemNum, Mask[ElemNum] && Result);
3153+ });
3154+ }
31553155
31563156 pushInteger (S, RetMask, Call->getType ());
31573157 return true ;
0 commit comments