cor3ntin added inline comments.
================ Comment at: clang/lib/Lex/Lexer.cpp:2717 + __m128i Bytes = + _mm_loadu_si128(reinterpret_cast<const __m128i *>(CurPtr)); + int Mask = _mm_movemask_epi8(Bytes); ---------------- aaron.ballman wrote: > aaron.ballman wrote: > > cor3ntin wrote: > > > This crashes when using `_mm_load_si128` which suprises me because > > > `CurPtr` is supposedly aligned on a 16 bytes boundary here. Any idea? > > Wait, did you verify that `CurPtr` really is on a 16-byte boundary, or are > > you thinking it should be on such a boundary? (I don't see any alignment > > markings on the parameter, so I'd assume it's aligned as any other pointer.) > Derp, I missed that the loop above is manually aligning the pointer. > > I'm not certain what's going on here with your crash... Just above, i do ``` while (C != '/' && ((intptr_t)CurPtr & 0x0F) != 0) { if (!isASCII(C)) { CurPtr--; break; } ``` Derp indeed (the `CurPtr--; break` is the culprit, fix shortly) Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D128059/new/ https://reviews.llvm.org/D128059 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits