[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-07 Thread Joel E. Denny via Phabricator via cfe-commits
jdenny added inline comments. Comment at: clang/lib/Sema/SemaOpenMP.cpp:1596 << Ty << E->getSourceRange(); + if (Ty->isRealFloatingType()) { +llvm::APFloatBase::Semantics Sem = llvm::APFloatBase::SemanticsToEnum( ABataev wrote: > jdenny wrote: > > A

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-07 Thread Alexey Bataev via Phabricator via cfe-commits
ABataev added inline comments. Comment at: clang/lib/Sema/SemaOpenMP.cpp:1596 << Ty << E->getSourceRange(); + if (Ty->isRealFloatingType()) { +llvm::APFloatBase::Semantics Sem = llvm::APFloatBase::SemanticsToEnum( jdenny wrote: > ABataev wrote: > >

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-07 Thread Joel E. Denny via Phabricator via cfe-commits
jdenny abandoned this revision. jdenny added inline comments. Comment at: clang/lib/Sema/SemaOpenMP.cpp:1596 << Ty << E->getSourceRange(); + if (Ty->isRealFloatingType()) { +llvm::APFloatBase::Semantics Sem = llvm::APFloatBase::SemanticsToEnum( ABat

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-07 Thread Alexey Bataev via Phabricator via cfe-commits
ABataev added inline comments. Comment at: clang/lib/Sema/SemaOpenMP.cpp:1596 << Ty << E->getSourceRange(); + if (Ty->isRealFloatingType()) { +llvm::APFloatBase::Semantics Sem = llvm::APFloatBase::SemanticsToEnum( jdenny wrote: > ABataev wrote: > >

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-07 Thread Joel E. Denny via Phabricator via cfe-commits
jdenny added inline comments. Comment at: clang/lib/Sema/SemaOpenMP.cpp:1596 << Ty << E->getSourceRange(); + if (Ty->isRealFloatingType()) { +llvm::APFloatBase::Semantics Sem = llvm::APFloatBase::SemanticsToEnum( ABataev wrote: > jdenny wrote: > > A

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-07 Thread Alexey Bataev via Phabricator via cfe-commits
ABataev added inline comments. Comment at: clang/lib/Sema/SemaOpenMP.cpp:1596 << Ty << E->getSourceRange(); + if (Ty->isRealFloatingType()) { +llvm::APFloatBase::Semantics Sem = llvm::APFloatBase::SemanticsToEnum( jdenny wrote: > ABataev wrote: > >

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-07 Thread Joel E. Denny via Phabricator via cfe-commits
jdenny added inline comments. Comment at: clang/lib/Sema/SemaOpenMP.cpp:1596 << Ty << E->getSourceRange(); + if (Ty->isRealFloatingType()) { +llvm::APFloatBase::Semantics Sem = llvm::APFloatBase::SemanticsToEnum( ABataev wrote: > jdenny wrote: > > A

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-07 Thread Alexey Bataev via Phabricator via cfe-commits
ABataev added inline comments. Comment at: clang/lib/Sema/SemaOpenMP.cpp:1596 << Ty << E->getSourceRange(); + if (Ty->isRealFloatingType()) { +llvm::APFloatBase::Semantics Sem = llvm::APFloatBase::SemanticsToEnum( jdenny wrote: > ABataev wrote: > >

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-07 Thread Joel E. Denny via Phabricator via cfe-commits
jdenny added inline comments. Comment at: clang/lib/Sema/SemaOpenMP.cpp:1596 << Ty << E->getSourceRange(); + if (Ty->isRealFloatingType()) { +llvm::APFloatBase::Semantics Sem = llvm::APFloatBase::SemanticsToEnum( ABataev wrote: > jdenny wrote: > > A

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-07 Thread Alexey Bataev via Phabricator via cfe-commits
ABataev added inline comments. Comment at: clang/lib/Sema/SemaOpenMP.cpp:1596 << Ty << E->getSourceRange(); + if (Ty->isRealFloatingType()) { +llvm::APFloatBase::Semantics Sem = llvm::APFloatBase::SemanticsToEnum( jdenny wrote: > ABataev wrote: > >

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-07 Thread Joel E. Denny via Phabricator via cfe-commits
jdenny added inline comments. Comment at: clang/lib/Sema/SemaOpenMP.cpp:1596 << Ty << E->getSourceRange(); + if (Ty->isRealFloatingType()) { +llvm::APFloatBase::Semantics Sem = llvm::APFloatBase::SemanticsToEnum( ABataev wrote: > Why do we need all

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-07 Thread Alexey Bataev via Phabricator via cfe-commits
ABataev added inline comments. Comment at: clang/include/clang/Basic/DiagnosticSemaKinds.td:8515 "%0 is not supported on this target">; +def err_type_not_equivalent : Error< + "%0 is not equivalent between host and target">; No, this message shall tell someth

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-06 Thread Joel E. Denny via Phabricator via cfe-commits
jdenny updated this revision to Diff 208286. jdenny added a comment. This incorporates all the improvements I think we've discussed so far: - In diagnostics, distinguish between unsupported types and non-equivalent types. - Don't treat `__float128` and `long double` as equivalent. - Compare exac

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-06 Thread Joel E. Denny via Phabricator via cfe-commits
jdenny added inline comments. Comment at: clang/lib/Sema/SemaOpenMP.cpp:1594 + !Context.getTargetInfo().hasFloat128Type() && + Context.getTargetInfo().getLongDoubleWidth() != 128) || (Ty->isIntegerType() && Context.getTypeSize(Ty) == 128 && ABa

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-06 Thread Alexey Bataev via Phabricator via cfe-commits
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 && jd

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-06 Thread Joel E. Denny via Phabricator via cfe-commits
jdenny added inline comments. Comment at: clang/lib/Sema/SemaOpenMP.cpp:1594 + !Context.getTargetInfo().hasFloat128Type() && + Context.getTargetInfo().getLongDoubleWidth() != 128) || (Ty->isIntegerType() && Context.getTypeSize(Ty) == 128 && ABa

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-06 Thread Alexey Bataev via Phabricator via cfe-commits
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 && Ma

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-06 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay added inline comments. Comment at: clang/lib/Sema/SemaOpenMP.cpp:1594 + !Context.getTargetInfo().hasFloat128Type() && + Context.getTargetInfo().getLongDoubleWidth() != 128) || (Ty->isIntegerType() && Context.getTypeSize(Ty) == 128 && AB

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-06 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay added a comment. Drive-by comment :) In gcc, (1) -mlong-double-128 uses IEEE 754 quad as the representation of long double on x86_64 (2) -mlong-double-128 -mabi=ieeelongdouble uses IEEE 754 quad as the representation of long double on powerpc{32,64}. (On Linux powerpc{32,64}, `-mlong

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-06 Thread Alexey Bataev via Phabricator via cfe-commits
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 && jd

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-06 Thread Joel E. Denny via Phabricator via cfe-commits
jdenny added inline comments. Comment at: clang/lib/Sema/SemaOpenMP.cpp:1594 + !Context.getTargetInfo().hasFloat128Type() && + Context.getTargetInfo().getLongDoubleWidth() != 128) || (Ty->isIntegerType() && Context.getTypeSize(Ty) == 128 && ABa

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-06 Thread Alexey Bataev via Phabricator via cfe-commits
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 && jd

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-06 Thread Joel E. Denny via Phabricator via cfe-commits
jdenny added inline comments. Comment at: clang/lib/Sema/SemaOpenMP.cpp:1594 + !Context.getTargetInfo().hasFloat128Type() && + Context.getTargetInfo().getLongDoubleWidth() != 128) || (Ty->isIntegerType() && Context.getTypeSize(Ty) == 128 && ABa

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-06 Thread Alexey Bataev via Phabricator via cfe-commits
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 && jd

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-06 Thread Joel E. Denny via Phabricator via cfe-commits
jdenny added inline comments. Comment at: clang/lib/Sema/SemaOpenMP.cpp:1594 + !Context.getTargetInfo().hasFloat128Type() && + Context.getTargetInfo().getLongDoubleWidth() != 128) || (Ty->isIntegerType() && Context.getTypeSize(Ty) == 128 && ABa

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-06 Thread Alexey Bataev via Phabricator via cfe-commits
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 && jd

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-06 Thread Joel E. Denny via Phabricator via cfe-commits
jdenny added inline comments. Comment at: clang/lib/Sema/SemaOpenMP.cpp:1594 + !Context.getTargetInfo().hasFloat128Type() && + Context.getTargetInfo().getLongDoubleWidth() != 128) || (Ty->isIntegerType() && Context.getTypeSize(Ty) == 128 && ABa

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-06 Thread Alexey Bataev via Phabricator via cfe-commits
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 && jd

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-06 Thread Joel E. Denny via Phabricator via cfe-commits
jdenny added inline comments. Comment at: clang/lib/Sema/SemaOpenMP.cpp:1594 + !Context.getTargetInfo().hasFloat128Type() && + Context.getTargetInfo().getLongDoubleWidth() != 128) || (Ty->isIntegerType() && Context.getTypeSize(Ty) == 128 && ABa

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-06 Thread Alexey Bataev via Phabricator via cfe-commits
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 && Hm

[PATCH] D64289: [OpenMP] Fix 128-bit long double support on target

2019-07-06 Thread Joel E. Denny via Phabricator via cfe-commits
jdenny created this revision. jdenny added a reviewer: ABataev. Herald added subscribers: jdoerfert, guansong. Herald added a project: clang. For example, without this fix, when the host is x86_64, long double is sometimes rejected when offloading to x86_64: $ cat test.c int main() { long