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

Reply via email to