tschuett wrote:
langref update for the new intrinsic?
https://github.com/llvm/llvm-project/pull/118178
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -3730,10 +3730,10 @@ Fast-Math Flags
LLVM IR floating-point operations (:ref:`fneg `, :ref:`fadd `,
:ref:`fsub `, :ref:`fmul `, :ref:`fdiv `,
-:ref:`frem `, :ref:`fcmp `), and :ref:`phi `,
-:ref:`select `, or :ref:`call ` instructions that return
-floating-point types may u
tschuett wrote:
> Hello - any additional feedback on this?
The house rule is to ping:
If you have received no comments on your patch for a week, you can request a
review by ‘ping’ing the GitHub PR with “Ping”. The common courtesy ‘ping’ rate
is once a week. Please remember that you are asking
tschuett wrote:
IIRC, you discussed once to have GPU-agnostic intrinsics in LLVM-IR. The
backends then have to handle the details.
https://github.com/llvm/llvm-project/pull/110179
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.l
@@ -104,6 +104,17 @@ static bool isDereferenceableAndAlignedPointer(
if (CheckForNonNull &&
!isKnownNonZero(V, SimplifyQuery(DL, DT, AC, CtxI)))
return false;
+// When using something like !dereferenceable on a load, the
+// dereferenceability may only
@@ -104,6 +104,17 @@ static bool isDereferenceableAndAlignedPointer(
if (CheckForNonNull &&
!isKnownNonZero(V, SimplifyQuery(DL, DT, AC, CtxI)))
return false;
+// When using something like !dereferenceable on a load, the
+// dereferenceability may only
@@ -303,6 +303,14 @@ SPIRVLegalizerInfo::SPIRVLegalizerInfo(const
SPIRVSubtarget &ST) {
getActionDefinitionsBuilder(G_FPOWI).legalForCartesianProduct(
allFloatScalarsAndVectors, allIntScalarsAndVectors);
+ getActionDefinitionsBuilder(G_FDOTPROD)
+ .legalForCarte
@@ -303,6 +303,14 @@ SPIRVLegalizerInfo::SPIRVLegalizerInfo(const
SPIRVSubtarget &ST) {
getActionDefinitionsBuilder(G_FPOWI).legalForCartesianProduct(
allFloatScalarsAndVectors, allIntScalarsAndVectors);
+ getActionDefinitionsBuilder(G_FDOTPROD)
+ .legalForCarte
tschuett wrote:
Please update the
https://github.com/llvm/llvm-project/blob/main/llvm/lib/CodeGen/MachineVerifier.cpp
to protect against misuse.
https://github.com/llvm/llvm-project/pull/102872
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
@@ -1088,6 +1088,27 @@ def G_FNEARBYINT : GenericInstruction {
let hasSideEffects = false;
}
+/// Floating point vector dot product
+def G_FDOTPROD : GenericInstruction {
+ let OutOperandList = (outs type0:$dst);
+ let InOperandList = (ins type0:$src1, type0:$src2);
+ let
tschuett wrote:
Please advertise your achievements:
https://github.com/llvm/llvm-project/blob/main/llvm/docs/GlobalISel/GenericOpcode.rst
Please add the intrinsics with semantics to the langref:
https://github.com/llvm/llvm-project/blob/main/llvm/docs/LangRef.rst
@nikic will review
Please prote
tschuett wrote:
No review?
https://github.com/llvm/llvm-project/pull/101845
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
tschuett wrote:
> @tschuett, Could you please help review this change?
I did. I gave you the float reviewer of the house.
https://github.com/llvm/llvm-project/pull/99698
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cg
tschuett wrote:
> > We are deprecating -Ofast and I would prefer to hint users first at
> > conforming behaviour -O3 and then as last resort at -O3 with -ffast-math.
>
> @tschuett I'm sympathetic to this arguments, but I think it's no less
> important to tell users in no uncertain terms how to
tschuett wrote:
We are deprecating -Ofast and I would prefer to hint users first at conforming
behaviour -O3 and then as last resort at -O3 with -ffast-math.
https://github.com/llvm/llvm-project/pull/98736
___
cfe-commits mailing list
cfe-commits@list
@@ -4428,10 +4428,14 @@ void Parser::ParseDeclarationSpecifiers(
// constexpr, consteval, constinit specifiers
case tok::kw_constexpr:
- if (getLangOpts().C23)
+ if (getLangOpts().C23) {
Diag(Tok, diag::warn_c23_compat_keyword) << Tok.getName();
-
https://github.com/tschuett edited
https://github.com/llvm/llvm-project/pull/97118
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -136,6 +136,7 @@ static constexpr fltSemantics semIEEEquad = {16383, -16382,
113, 128};
static constexpr fltSemantics semFloat8E5M2 = {15, -14, 3, 8};
static constexpr fltSemantics semFloat8E5M2FNUZ = {
15, -15, 3, 8, fltNonfiniteBehavior::NanOnly,
fltNanEncoding::Nega
https://github.com/tschuett edited
https://github.com/llvm/llvm-project/pull/97179
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/tschuett edited
https://github.com/llvm/llvm-project/pull/97179
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
tschuett wrote:
For reference the last type added:
https://github.com/llvm/llvm-project/pull/95392
https://github.com/llvm/llvm-project/pull/97179
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/c
tschuett wrote:
If this is a new float type, could you please split out the apfloat changes in
separate PR.
https://github.com/llvm/llvm-project/pull/97118
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/
tschuett wrote:
It is a problem that is worth fixing long term. How to correctly model release
versions and their optional dependencies. Furthermore, for the BTI example how
remove features.
https://github.com/llvm/llvm-project/pull/95478
___
cfe-com
@@ -69,8 +69,8 @@ enum class fltNonfiniteBehavior {
// encodings do not distinguish between signalling and quiet NaN.
NanOnly,
- // This behavior is present in Float6E3M2FN and Float6E2M3FN types,
- // which do not support Inf or NaN values.
+ // This behavior is presen
tschuett wrote:
Needs a test.
https://github.com/llvm/llvm-project/pull/94865
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -3518,13 +3542,17 @@ APInt IEEEFloat::convertIEEEFloatToAPInt() const {
myexponent = ::exponentZero(S) + bias;
mysignificand.fill(0);
} else if (category == fcInfinity) {
-if (S.nonFiniteBehavior == fltNonfiniteBehavior::NanOnly) {
+if (S.nonFiniteBehavior
@@ -3518,13 +3542,17 @@ APInt IEEEFloat::convertIEEEFloatToAPInt() const {
myexponent = ::exponentZero(S) + bias;
mysignificand.fill(0);
} else if (category == fcInfinity) {
-if (S.nonFiniteBehavior == fltNonfiniteBehavior::NanOnly) {
+if (S.nonFiniteBehavior
tschuett wrote:
Could you please add a TODO here:
https://github.com/llvm/llvm-project/blob/e3f42b02a4129947ca2dd820bfb63ffed83027b7/llvm/lib/CodeGen/MachineInstr.cpp#L565
Thanks.
https://github.com/llvm/llvm-project/pull/90824
___
cfe-commits mailing
@@ -674,6 +674,9 @@
# DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
# DEBUG-NEXT: .. the first uncovered type index: 1, OK
# DEBUG-NEXT: .. the first uncovered imm index: 0, OK
+# DEBUG-NEXT: G_FTAN (opcode {{[0-9]+}}): 1 type index, 0 imm indices
t
tschuett wrote:
Firstly, it is a nit. The IRTranslator translates LLVM-IR into GMIR for
GlobalIsel. Testing the IRTranslator is independent of any SDAG changes.
https://github.com/llvm/llvm-project/pull/90503
___
cfe-commits mailing list
cfe-commits@l
tschuett wrote:
Nit: the `declare` is not necessary anymore. You touched the IRTranslator
without a test at, e.g.,
https://github.com/llvm/llvm-project/blob/main/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll
https://github.com/llvm/llvm-project/pull/90503
_
@@ -18914,13 +18914,13 @@ This is an overloaded intrinsic.
::
- declare <2 x double> @llvm.experimental.vector.splice.v2f64(<2 x double>
%vec1, <2 x double> %vec2, i32 %imm)
- declare
@llvm.experimental.vector.splice.nxv4i32( %vec1, %vec2, i32 %imm)
+ decla
@@ -18779,13 +18779,13 @@ This is an overloaded intrinsic.
::
- declare <2 x i8> @llvm.experimental.vector.reverse.v2i8(<2 x i8> %a)
- declare
@llvm.experimental.vector.reverse.nxv4i32( %a)
+ declare <2 x i8> @llvm.vector.reverse.v2i8(<2 x i8> %a)
+ decl
@@ -831,7 +831,7 @@ class PackDeductionScope {
if (IsPartiallyExpanded)
PackElements += NumPartialPackArgs;
else if (IsExpanded)
- PackElements += *FixedNumExpansions;
+ PackElements += FixedNumExpansions.value_or(1);
tschuett wrote:
``
@@ -831,7 +831,7 @@ class PackDeductionScope {
if (IsPartiallyExpanded)
PackElements += NumPartialPackArgs;
else if (IsExpanded)
- PackElements += *FixedNumExpansions;
+ PackElements += FixedNumExpansions.value_or(1);
tschuett wrote:
Co
tschuett wrote:
The bigger issue is that it needs a test. Unfortunately, I am less familiar
with the Clang test infrastructure.
https://github.com/llvm/llvm-project/pull/81656
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.
@@ -12696,6 +12696,56 @@ bool IntExprEvaluator::VisitBuiltinCallExpr(const
CallExpr *E,
return BuiltinOp == Builtin::BI__atomic_always_lock_free ?
Success(0, E) : Error(E);
}
+ case Builtin::BI__builtin_addcb:
+ case Builtin::BI__builtin_addcs:
+ case Builtin:
tschuett wrote:
Sorry for the confusion, but the codegen test showed it makes sense what you
are doing.
https://github.com/llvm/llvm-project/pull/81656
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/list
@@ -12691,6 +12691,56 @@ bool IntExprEvaluator::VisitBuiltinCallExpr(const
CallExpr *E,
return BuiltinOp == Builtin::BI__atomic_always_lock_free ?
Success(0, E) : Error(E);
}
+ case Builtin::BI__builtin_addcb:
+ case Builtin::BI__builtin_addcs:
+ case Builtin:
@@ -12691,6 +12691,56 @@ bool IntExprEvaluator::VisitBuiltinCallExpr(const
CallExpr *E,
return BuiltinOp == Builtin::BI__atomic_always_lock_free ?
Success(0, E) : Error(E);
}
+ case Builtin::BI__builtin_addcb:
+ case Builtin::BI__builtin_addcs:
+ case Builtin:
@@ -12691,6 +12691,56 @@ bool IntExprEvaluator::VisitBuiltinCallExpr(const
CallExpr *E,
return BuiltinOp == Builtin::BI__atomic_always_lock_free ?
Success(0, E) : Error(E);
}
+ case Builtin::BI__builtin_addcb:
+ case Builtin::BI__builtin_addcs:
+ case Builtin:
tschuett wrote:
Nice trick.
https://github.com/llvm/llvm-project/pull/81656
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -0,0 +1,66 @@
+// Check that -fsanitize=signed-integer-wrap instruments with -fwrapv
+// RUN: %clang_cc1 -fwrapv -triple x86_64-apple-darwin -emit-llvm -o - %s
-fsanitize=signed-integer-wrap | FileCheck %s --check-prefix=CHECK
+
+// Check that -fsanitize=signed-integer-overflo
@@ -2,6 +2,7 @@ set(LLVM_LINK_COMPONENTS
Support
TargetParser
FrontendOpenMP
+ FrontendDriver
tschuett wrote:
I would prefer putting it into FrontendDriver for style and as a precedence to
encourage others to put more into the frontend.
https://github
tschuett wrote:
I reverted the commit.
https://github.com/llvm/llvm-project/pull/76763
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
tschuett wrote:
The file was not changed by this PR and there is no `select` in the file.
https://github.com/llvm/llvm-project/pull/76763
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commit
tschuett wrote:
I had also issues with this test. There is also a GH issue:
https://github.com/llvm/llvm-project/issues/76821.
https://github.com/llvm/llvm-project/pull/76763
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.o
https://github.com/tschuett closed
https://github.com/llvm/llvm-project/pull/76763
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -544,3 +544,154 @@ body: |
%ext:_(s32) = G_ANYEXT %sel
$w0 = COPY %ext(s32)
...
+---
+# select cond, and(x, y), and(z, y) --> and (select cond, x, z), y
+name:select_cond_and_x_y_and_z_y_and_select_x_z_y
+body: |
+ bb.1:
+live
@@ -544,3 +544,154 @@ body: |
%ext:_(s32) = G_ANYEXT %sel
$w0 = COPY %ext(s32)
...
+---
+# select cond, and(x, y), and(z, y) --> and (select cond, x, z), y
+name:select_cond_and_x_y_and_z_y_and_select_x_z_y
+body: |
+ bb.1:
+live
@@ -6548,6 +6534,54 @@ bool CombinerHelper::tryFoldBoolSelectToLogic(GSelect
*Select,
return false;
}
+bool CombinerHelper::tryFoldSelectOfBinOps(GSelect *Select,
+ BuildFnTy &MatchInfo) {
+ Register DstReg = Select->getReg(0);
+
@@ -6548,6 +6534,54 @@ bool CombinerHelper::tryFoldBoolSelectToLogic(GSelect
*Select,
return false;
}
+bool CombinerHelper::tryFoldSelectOfBinOps(GSelect *Select,
+ BuildFnTy &MatchInfo) {
+ Register DstReg = Select->getReg(0);
+
https://github.com/tschuett updated
https://github.com/llvm/llvm-project/pull/76763
From e713bb6e2c36ec16c731217f0c3be19b040a03d0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thorsten=20Sch=C3=BCtt?=
Date: Tue, 2 Jan 2024 18:00:45 +0100
Subject: [PATCH 1/4] [GlobalIsel] Combine select of binops
--
tschuett wrote:
Please review changes (C++ and mir) regarding flag handling.
https://github.com/llvm/llvm-project/pull/76763
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/tschuett updated
https://github.com/llvm/llvm-project/pull/76763
From e713bb6e2c36ec16c731217f0c3be19b040a03d0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thorsten=20Sch=C3=BCtt?=
Date: Tue, 2 Jan 2024 18:00:45 +0100
Subject: [PATCH 1/3] [GlobalIsel] Combine select of binops
--
https://github.com/tschuett updated
https://github.com/llvm/llvm-project/pull/76763
From e713bb6e2c36ec16c731217f0c3be19b040a03d0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thorsten=20Sch=C3=BCtt?=
Date: Tue, 2 Jan 2024 18:00:45 +0100
Subject: [PATCH] [GlobalIsel] Combine select of binops
---
.
@@ -2164,6 +2164,12 @@ bool Driver::HandleImmediateArgs(const Compilation &C) {
return false;
}
+ if (C.getArgs().hasArg(options::OPT_print_library_module_manifest_path)) {
+llvm::outs() << "module: ="
tschuett wrote:
If the output starts with a /,
@@ -2164,6 +2164,12 @@ bool Driver::HandleImmediateArgs(const Compilation &C) {
return false;
}
+ if (C.getArgs().hasArg(options::OPT_print_library_module_manifest_path)) {
+llvm::outs() << "module: ="
tschuett wrote:
```shell
> clang --print-resou
@@ -6135,6 +6141,40 @@ std::string Driver::GetProgramPath(StringRef Name, const
ToolChain &TC) const {
return std::string(Name);
}
+std::string Driver::GetModuleManifestPath(const Compilation &C,
+ const ToolChain &TC) const {
+
+ s
@@ -6135,6 +6141,40 @@ std::string Driver::GetProgramPath(StringRef Name, const
ToolChain &TC) const {
return std::string(Name);
}
+std::string Driver::GetModuleManifestPath(const Compilation &C,
+ const ToolChain &TC) const {
+
+ s
@@ -6135,6 +6141,40 @@ std::string Driver::GetProgramPath(StringRef Name, const
ToolChain &TC) const {
return std::string(Name);
}
+std::string Driver::GetModuleManifestPath(const Compilation &C,
+ const ToolChain &TC) const {
+
+ s
@@ -0,0 +1,15 @@
+// Test that -print-library-module-manifest-path finds the correct file.
+
+// RUN: %clang -print-library-module-manifest-path \
tschuett wrote:
The trend seems to go to two dashes and there are no tests for 2 dashes.
https://github.com/llvm/ll
@@ -0,0 +1,15 @@
+// Test that -print-library-module-manifest-path finds the correct file.
+
+// RUN: %clang -print-library-module-manifest-path \
tschuett wrote:
--print-runtime-dir, --print-target-triple, --print-supported-cpus, and
--print-supported-extensio
@@ -602,6 +602,16 @@ class Driver {
// FIXME: This should be in CompilationInfo.
std::string GetProgramPath(StringRef Name, const ToolChain &TC) const;
+ /// GetModuleManifestPath - Lookup the name of the Standard library manifest.
+ ///
+ /// \param C - The compilation
@@ -94,6 +94,11 @@ Changes to the AArch64 Backend
* Added support for Cortex-A520, Cortex-A720 and Cortex-X4 CPUs.
+* Neoverse-N2 was incorrectly marked as an Armv8.5a core. This has been
+ changed to an Armv9.0a core. However, crypto options are not enabled
+ by default fo
@@ -94,6 +94,11 @@ Changes to the AArch64 Backend
* Added support for Cortex-A520, Cortex-A720 and Cortex-X4 CPUs.
+* Neoverse-N2 was incorrectly marked as an Armv8.5a core. This has been
+ changed to an Armv9.0a core. However, crypto options are not enabled
+ by default fo
tschuett wrote:
Clang PRs often update the release notes and features.
ala: The LLVM 19 release will not contain flang-new.
https://github.com/llvm/llvm-project/pull/74377
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/
tschuett wrote:
Are you going to add an entry to the [Release
Nodes](https://github.com/llvm/llvm-project/blob/main/flang/docs/ReleaseNotes.md)?
https://github.com/llvm/llvm-project/pull/74377
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
ht
Author: Thorsten Schütt
Date: 2022-08-09T17:42:55+02:00
New Revision: e486e48c3d9e99e4c17d365bbc4b429c8e5b5999
URL:
https://github.com/llvm/llvm-project/commit/e486e48c3d9e99e4c17d365bbc4b429c8e5b5999
DIFF:
https://github.com/llvm/llvm-project/commit/e486e48c3d9e99e4c17d365bbc4b429c8e5b5999.dif
Author: Thorsten Schütt
Date: 2020-11-18T09:20:37+01:00
New Revision: 955341a722a0a204c79f6b948e4fe0f23bb56e30
URL:
https://github.com/llvm/llvm-project/commit/955341a722a0a204c79f6b948e4fe0f23bb56e30
DIFF:
https://github.com/llvm/llvm-project/commit/955341a722a0a204c79f6b948e4fe0f23bb56e30.dif
70 matches
Mail list logo