ABataev added inline comments.
================
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1594
+       !Context.getTargetInfo().hasFloat128Type() &&
+       Context.getTargetInfo().getLongDoubleWidth() != 128) ||
       (Ty->isIntegerType() && Context.getTypeSize(Ty) == 128 &&
----------------
jdenny wrote:
> ABataev wrote:
> > jdenny wrote:
> > > ABataev wrote:
> > > > Hmm, this look strange, at least. Seems to me, in this case the size of 
> > > > the long double is 128 bit (copied from the host), but device reports 
> > > > that it does not support 128 bit double. Seems to me, it is a problem 
> > > > with the device configuration. Why does the host translate long double 
> > > > to 128 bit fp, while the device translates it to 64 bit FP?
> > > Sorry, I think I've misunderstood what's happening here, and my fix is 
> > > probably wrong.
> > > 
> > > For x86_64, the example from my patch summary fails as described there.  
> > > Does that work for you?
> > > 
> > > For powerpc64le, the reproducer I added to the test suite fails without 
> > > this patch.  Shouldn't it succeed?
> > Still, seems to me like the problem with the device config, not the 
> > original check.
> > Still, seems to me like the problem with the device config, not the 
> > original check.
> 
> I'm not sure where to begin looking for that.  Can you point me in the right 
> direction?  Thanks.
You need to understand why host and device report different size of the type. 
Check how the device is configured in lib/Basic/Targets


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D64289



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

Reply via email to