craig.topper added inline comments.

================
Comment at: clang/lib/Headers/ia32intrin.h:419
+    *(a) = (unsigned)__bsfd((int)(b));                                         
\
+    (unsigned char)((b) != 0);                                                 
\
+  })
----------------
this evaluates (b) twice. That's bad if b is a function call with side effects


================
Comment at: clang/lib/Headers/ia32intrin.h:428
+  __extension__({                                                              
\
+    *(a) = (unsigned)__bsfq((long long)(b));                                   
\
+    (unsigned char)((b) != 0);                                                 
\
----------------
__bsfq/__bsrq is only defined on 64-bit targets.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D75723/new/

https://reviews.llvm.org/D75723



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to