[PATCH] D111986: [Clang] Add elementwise abs builtin.

2021-10-27 Thread Florian Hahn via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG01870d51b848: [Clang] Add elementwise abs builtin. (authored by fhahn). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D111986/new/ https://reviews.llvm.org/D

[PATCH] D111986: [Clang] Add elementwise abs builtin.

2021-10-27 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman accepted this revision. aaron.ballman added a comment. LGTM, thank you! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D111986/new/ https://reviews.llvm.org/D111986 ___ cfe-commits mailing li

[PATCH] D111986: [Clang] Add elementwise abs builtin.

2021-10-26 Thread Florian Hahn via Phabricator via cfe-commits
fhahn updated this revision to Diff 382445. fhahn marked an inline comment as done. fhahn added a comment. add comment to arg of Diag message Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D111986/new/ https://reviews.llvm.org/D111986 Files: clang

[PATCH] D111986: [Clang] Add elementwise abs builtin.

2021-10-26 Thread Florian Hahn via Phabricator via cfe-commits
fhahn marked an inline comment as done. fhahn added inline comments. Comment at: clang/lib/Sema/SemaChecking.cpp:16547 + Expr *A = TheCall->getArg(0); + QualType TyA = A->getType(); + aaron.ballman wrote: > fhahn wrote: > > aaron.ballman wrote: > > > Should thi

[PATCH] D111986: [Clang] Add elementwise abs builtin.

2021-10-26 Thread Florian Hahn via Phabricator via cfe-commits
fhahn updated this revision to Diff 382443. fhahn added a comment. Apply UsualUnaryConversions to input argument. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D111986/new/ https://reviews.llvm.org/D111986 Files: clang/include/clang/Basic/Builtin

[PATCH] D111986: [Clang] Add elementwise abs builtin.

2021-10-26 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added inline comments. Comment at: clang/lib/Sema/SemaChecking.cpp:16547 + Expr *A = TheCall->getArg(0); + QualType TyA = A->getType(); + fhahn wrote: > aaron.ballman wrote: > > Should this type undergo the usual promotions? > I'm not sure, but gi

[PATCH] D111986: [Clang] Add elementwise abs builtin.

2021-10-26 Thread Florian Hahn via Phabricator via cfe-commits
fhahn added inline comments. Comment at: clang/include/clang/Basic/DiagnosticSemaKinds.td:8754 +def err_elementwise_math_invalid_arg_type_2: Error < + "argument must have a %0 type, but was %1">; + aaron.ballman wrote: > I feel like we must already have a diagno

[PATCH] D111986: [Clang] Add elementwise abs builtin.

2021-10-26 Thread Florian Hahn via Phabricator via cfe-commits
fhahn updated this revision to Diff 382376. fhahn marked 2 inline comments as done. fhahn added a comment. Rebased and updated to use `err_builtin_invalid_arg_type`. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D111986/new/ https://reviews.llvm.org

[PATCH] D111986: [Clang] Add elementwise abs builtin.

2021-10-26 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added inline comments. Comment at: clang/include/clang/Basic/DiagnosticSemaKinds.td:8754 +def err_elementwise_math_invalid_arg_type_2: Error < + "argument must have a %0 type, but was %1">; + I feel like we must already have a diagnostic that cover

[PATCH] D111986: [Clang] Add elementwise abs builtin.

2021-10-26 Thread Florian Hahn via Phabricator via cfe-commits
fhahn updated this revision to Diff 382226. fhahn marked 2 inline comments as done. fhahn added a comment. Rebased after recent changes in D111985 : changes the return type of SemaBuiltinElementwiseMathOneArg to bool and drop the CallResult argument. Also added

[PATCH] D111986: [Clang] Add elementwise abs builtin.

2021-10-20 Thread Florian Hahn via Phabricator via cfe-commits
fhahn marked 2 inline comments as done. fhahn added inline comments. Comment at: clang/lib/Sema/SemaChecking.cpp:16667 + + if (!TyA->getAs() && !ConstantMatrixType::isValidElementType(TyA)) +return Diag(A->getBeginLoc(), diag::err_elementwise_math_invalid_arg_type)

[PATCH] D111986: [Clang] Add elementwise abs builtin.

2021-10-20 Thread Florian Hahn via Phabricator via cfe-commits
fhahn updated this revision to Diff 380947. fhahn added a comment. Use checkMathBuiltinElementType helper added in D111985 . Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D111986/new/ https://reviews.llvm.org/D1119

[PATCH] D111986: [Clang] Add elementwise abs builtin.

2021-10-19 Thread Steve Canon via Phabricator via cfe-commits
scanon accepted this revision. scanon added a comment. This revision is now accepted and ready to land. Two minor questions, but also LGTM as is. Comment at: clang/lib/Sema/SemaChecking.cpp:16667 + + if (!TyA->getAs() && !ConstantMatrixType::isValidElementType(TyA)) +retu

[PATCH] D111986: [Clang] Add elementwise abs builtin.

2021-10-19 Thread Florian Hahn via Phabricator via cfe-commits
fhahn updated this revision to Diff 380756. fhahn added a comment. In D111986#3072946 , @scanon wrote: > What's the rationale for making abs undefined on the minimum value? AFAIK > every actual simd implementation defines the result and they agree (and e

[PATCH] D111986: [Clang] Add elementwise abs builtin.

2021-10-19 Thread Steve Canon via Phabricator via cfe-commits
scanon added a comment. What's the rationale for making abs undefined on the minimum value? AFAIK every actual simd implementation defines the result and they agree (and even if one didn't, it would be pretty easy to get the "right" result. Introducing UB here just seems like punishing users fo

[PATCH] D111986: [Clang] Add elementwise abs builtin.

2021-10-19 Thread Florian Hahn via Phabricator via cfe-commits
fhahn marked 2 inline comments as done. fhahn added inline comments. Comment at: clang/lib/CodeGen/CGBuiltin.cpp:3109 + Result = Builder.CreateBinaryIntrinsic( + llvm::Intrinsic::abs, Op0, Builder.getFalse(), nullptr, "elt.abs"); +else craig.top

[PATCH] D111986: [Clang] Add elementwise abs builtin.

2021-10-19 Thread Florian Hahn via Phabricator via cfe-commits
fhahn updated this revision to Diff 380618. fhahn added a comment. Pass is_int_min_poison=true to llvm.abs.* to reflect latest update to the specification to make taking abs of the most negative integer undefined. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://review

[PATCH] D111986: [Clang] Add elementwise abs builtin.

2021-10-18 Thread Craig Topper via Phabricator via cfe-commits
craig.topper added inline comments. Comment at: clang/lib/CodeGen/CGBuiltin.cpp:3109 + Result = Builder.CreateBinaryIntrinsic( + llvm::Intrinsic::abs, Op0, Builder.getFalse(), nullptr, "elt.abs"); +else craig.topper wrote: > Did we discuss that

[PATCH] D111986: [Clang] Add elementwise abs builtin.

2021-10-18 Thread Craig Topper via Phabricator via cfe-commits
craig.topper added inline comments. Comment at: clang/lib/CodeGen/CGBuiltin.cpp:3109 + Result = Builder.CreateBinaryIntrinsic( + llvm::Intrinsic::abs, Op0, Builder.getFalse(), nullptr, "elt.abs"); +else Did we discuss that this is different than

[PATCH] D111986: [Clang] Add elementwise abs builtin.

2021-10-18 Thread Florian Hahn via Phabricator via cfe-commits
fhahn updated this revision to Diff 380411. fhahn added a comment. polish tests a bit Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D111986/new/ https://reviews.llvm.org/D111986 Files: clang/include/clang/Basic/Builtins.def clang/include/clang/

[PATCH] D111986: [Clang] Add elementwise abs builtin.

2021-10-18 Thread Florian Hahn via Phabricator via cfe-commits
fhahn created this revision. fhahn added reviewers: aaron.ballman, scanon, craig.topper, rjmccall, erichkeane. Herald added a subscriber: mstorsjo. fhahn requested review of this revision. Herald added a project: clang. This patch implements __builtin_elementwise_abs as specified in D111529