rjmccall added inline comments.

================
Comment at: clang/lib/CodeGen/CGExprScalar.cpp:1315
+  if ((SrcType->isHalfType() || iSFloat16Allowed) &&
+      !CGF.getContext().getLangOpts().NativeHalfType) {
     // Cast to FP using the intrinsic if the half type itself isn't supported.
----------------
pengfei wrote:
> rjmccall wrote:
> > Okay, this condition is pretty ridiculous to be repeating in three 
> > different places across the compiler.  Especially since you're going to 
> > change it when you implement the new option, right?
> > 
> > Can we state this condition more generally?  I'm not sure why this is so 
> > narrowly restricted, and the variable name isn't telling me anything, since 
> > `_Float16` must by definition be "allowed" if we have an expression of 
> > `_Float16` type.
> > since _Float16 must by definition be "allowed" if we have an expression of 
> > _Float16 type.
> 
> _Float16 is allowed only on a few targets. 
> https://clang.llvm.org/docs/LanguageExtensions.html#half-precision-floating-point
> By the way, we should update for X86 since it's not limited to avx512fp16 now.
> _Float16 is allowed only on a few targets.

Yes, I know that.  But if `SrcType->isFloat16Type()` is true, we must be on one 
of those targets, because the type doesn't otherwise exist.


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

https://reviews.llvm.org/D113107

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

Reply via email to