@@ -13100,12 +13100,12 @@ bool VectorExprEvaluator::VisitCallExpr(const CallExpr *E) {
1310013100 case X86::BI__builtin_ia32_vpermi2varq128:
1310113101 case X86::BI__builtin_ia32_vpermi2varpd128: {
1310213102 APValue R;
13103- if (!evalShuffleGeneric(
13104- Info, E, R, [](unsigned DstIdx, unsigned ShuffleMask) {
13105- int Offset = ShuffleMask & 0x1;
13106- unsigned SrcIdx = (ShuffleMask >> 1) & 0x1;
13107- return std::pair<unsigned, int>{SrcIdx, Offset};
13108- }))
13103+ if (!evalShuffleGeneric(Info, E, R,
13104+ [](unsigned DstIdx, unsigned ShuffleMask) {
13105+ int Offset = ShuffleMask & 0x1;
13106+ unsigned SrcIdx = (ShuffleMask >> 1) & 0x1;
13107+ return std::pair<unsigned, int>{SrcIdx, Offset};
13108+ }))
1310913109 return false;
1311013110 return Success(R, E);
1311113111 }
@@ -13114,12 +13114,12 @@ bool VectorExprEvaluator::VisitCallExpr(const CallExpr *E) {
1311413114 case X86::BI__builtin_ia32_vpermi2varq256:
1311513115 case X86::BI__builtin_ia32_vpermi2varpd256: {
1311613116 APValue R;
13117- if (!evalShuffleGeneric(
13118- Info, E, R, [](unsigned DstIdx, unsigned ShuffleMask) {
13119- int Offset = ShuffleMask & 0x3;
13120- unsigned SrcIdx = (ShuffleMask >> 2) & 0x1;
13121- return std::pair<unsigned, int>{SrcIdx, Offset};
13122- }))
13117+ if (!evalShuffleGeneric(Info, E, R,
13118+ [](unsigned DstIdx, unsigned ShuffleMask) {
13119+ int Offset = ShuffleMask & 0x3;
13120+ unsigned SrcIdx = (ShuffleMask >> 2) & 0x1;
13121+ return std::pair<unsigned, int>{SrcIdx, Offset};
13122+ }))
1312313123 return false;
1312413124 return Success(R, E);
1312513125 }
@@ -13129,12 +13129,12 @@ bool VectorExprEvaluator::VisitCallExpr(const CallExpr *E) {
1312913129 case X86::BI__builtin_ia32_vpermi2varq512:
1313013130 case X86::BI__builtin_ia32_vpermi2varpd512: {
1313113131 APValue R;
13132- if (!evalShuffleGeneric(
13133- Info, E, R, [](unsigned DstIdx, unsigned ShuffleMask) {
13134- int Offset = ShuffleMask & 0x7;
13135- unsigned SrcIdx = (ShuffleMask >> 3) & 0x1;
13136- return std::pair<unsigned, int>{SrcIdx, Offset};
13137- }))
13132+ if (!evalShuffleGeneric(Info, E, R,
13133+ [](unsigned DstIdx, unsigned ShuffleMask) {
13134+ int Offset = ShuffleMask & 0x7;
13135+ unsigned SrcIdx = (ShuffleMask >> 3) & 0x1;
13136+ return std::pair<unsigned, int>{SrcIdx, Offset};
13137+ }))
1313813138 return false;
1313913139 return Success(R, E);
1314013140 }
@@ -13143,35 +13143,35 @@ bool VectorExprEvaluator::VisitCallExpr(const CallExpr *E) {
1314313143 case X86::BI__builtin_ia32_vpermi2vard512:
1314413144 case X86::BI__builtin_ia32_vpermi2varps512: {
1314513145 APValue R;
13146- if (!evalShuffleGeneric(
13147- Info, E, R, [](unsigned DstIdx, unsigned ShuffleMask) {
13148- int Offset = ShuffleMask & 0xF;
13149- unsigned SrcIdx = (ShuffleMask >> 4) & 0x1;
13150- return std::pair<unsigned, int>{SrcIdx, Offset};
13151- }))
13146+ if (!evalShuffleGeneric(Info, E, R,
13147+ [](unsigned DstIdx, unsigned ShuffleMask) {
13148+ int Offset = ShuffleMask & 0xF;
13149+ unsigned SrcIdx = (ShuffleMask >> 4) & 0x1;
13150+ return std::pair<unsigned, int>{SrcIdx, Offset};
13151+ }))
1315213152 return false;
1315313153 return Success(R, E);
1315413154 }
1315513155 case X86::BI__builtin_ia32_vpermi2varqi256:
1315613156 case X86::BI__builtin_ia32_vpermi2varhi512: {
1315713157 APValue R;
13158- if (!evalShuffleGeneric(
13159- Info, E, R, [](unsigned DstIdx, unsigned ShuffleMask) {
13160- int Offset = ShuffleMask & 0x1F;
13161- unsigned SrcIdx = (ShuffleMask >> 5) & 0x1;
13162- return std::pair<unsigned, int>{SrcIdx, Offset};
13163- }))
13158+ if (!evalShuffleGeneric(Info, E, R,
13159+ [](unsigned DstIdx, unsigned ShuffleMask) {
13160+ int Offset = ShuffleMask & 0x1F;
13161+ unsigned SrcIdx = (ShuffleMask >> 5) & 0x1;
13162+ return std::pair<unsigned, int>{SrcIdx, Offset};
13163+ }))
1316413164 return false;
1316513165 return Success(R, E);
1316613166 }
1316713167 case X86::BI__builtin_ia32_vpermi2varqi512: {
1316813168 APValue R;
13169- if (!evalShuffleGeneric(
13170- Info, E, R, [](unsigned DstIdx, unsigned ShuffleMask) {
13171- int Offset = ShuffleMask & 0x3F;
13172- unsigned SrcIdx = (ShuffleMask >> 6) & 0x1;
13173- return std::pair<unsigned, int>{SrcIdx, Offset};
13174- }))
13169+ if (!evalShuffleGeneric(Info, E, R,
13170+ [](unsigned DstIdx, unsigned ShuffleMask) {
13171+ int Offset = ShuffleMask & 0x3F;
13172+ unsigned SrcIdx = (ShuffleMask >> 6) & 0x1;
13173+ return std::pair<unsigned, int>{SrcIdx, Offset};
13174+ }))
1317513175 return false;
1317613176 return Success(R, E);
1317713177 }
0 commit comments