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