[PATCH] D136746: [mlir] Saturation arithmetic intrinsics

2022-10-26 Thread Tobias Gysi via Phabricator via cfe-commits
gysit added inline comments.



Comment at: mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td:150-153
 }

+// Saturation Arithmetic Intrinsics.
+
+def LLVM_SAddSat

nit: There are quite a lot of changes in the diff for things that seemingly did 
not change (e.g. the overflow ops or the memove memset tests). Could it be your 
editor inserts tabs instead of spaces?



Comment at: mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td:173
 //
 // Coroutine intrinsics.
 //

Nice! 

I have just landed a revision that makes the type constraints for llvm 
intrinsics more precise (https://reviews.llvm.org/D136360). Can you update your 
newly added intrinsics to have more accurate type constraints as well (e.g. 
AnySignlessInteger instead of just LLVM_Type)? I think they may be best defined 
by deriving from LLVM_BinarySameArgsIntrOpI since they take two arguments and 
return one result of the same type if I am not mistaken:

```
def LLVM_SMaxOp : LLVM_BinarySameArgsIntrOpI<"sadd.sat">;
def LLVM_SMaxOp : LLVM_BinarySameArgsIntrOpI<"ssub.sat">;
```


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D136746

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


[PATCH] D136746: [mlir] Saturation arithmetic intrinsics

2022-10-26 Thread Tobias Gysi via Phabricator via cfe-commits
gysit added a comment.

Looks good from my side modulo the nit comment. Let's wait for @ftynse (the 
code owner) for the final approval.




Comment at: mlir/test/Target/LLVMIR/Import/intrinsic.ll:778
+declare i32 @llvm.usub.sat.i32(i32, i32)
+declare <8 x i32> @llvm.usub.sat.v8i32(<8 x i32>, <8 x i32>) #0
 declare token @llvm.coro.id(i32, i8* readnone, i8* nocapture readonly, i8*)

nit: the #0 seems unnecessary.


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

https://reviews.llvm.org/D136746

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


[PATCH] D136746: [mlir] Saturation arithmetic intrinsics

2022-10-26 Thread Tobias Gysi via Phabricator via cfe-commits
gysit added inline comments.



Comment at: mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td:179
+def LLVM_SAddSat : LLVM_BinarySameArgsIntrOpI<"sadd.sat">;
+def LLVM_SAddSat : LLVM_BinarySameArgsIntrOpI<"uadd.sat">;
+def LLVM_SAddSat : LLVM_BinarySameArgsIntrOpI<"ssub.sat">;

Ah I missed that one. The Op names need to differ of course LLVM_SAddSat, 
LLVM_UAddSat, etc.


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

https://reviews.llvm.org/D136746

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


[PATCH] D136746: [mlir] Saturation arithmetic intrinsics

2023-05-15 Thread Tobias Gysi via Phabricator via cfe-commits
gysit added a comment.
Herald added subscribers: bviyer, Moerafaat.

@omri123 are you interested in rebasing and landing this?


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

https://reviews.llvm.org/D136746

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


[PATCH] D115728: [mlir][linalg] Replace LinalgOps.h and LinalgTypes.h by a single header.

2021-12-14 Thread Tobias Gysi via Phabricator via cfe-commits
gysit created this revision.
Herald added subscribers: sdasgup3, wenzhicui, wrengr, Chia-hungDuan, 
armkevincheng, jsmolens, eric-k256, dcaballe, cota, mravishankar, teijeong, 
rdzhabarov, tatianashp, ThomasRaoux, AlexeySotkin, msifontes, jurahul, Kayjukh, 
grosul1, Joonsoo, liufengdb, aartbik, lucyrfox, mgester, arpith-jacob, 
antiagainst, shauheen, rriddle, mehdi_amini, mgorny.
Herald added a reviewer: antiagainst.
Herald added a reviewer: aartbik.
Herald added a reviewer: ftynse.
Herald added a reviewer: aartbik.
Herald added a reviewer: sjarus.
gysit requested review of this revision.
Herald added a reviewer: nicolasvasilache.
Herald added subscribers: cfe-commits, limo1996, stephenneuendorffer, 
nicolasvasilache.
Herald added projects: clang, MLIR.

After removing the range type, Linalg does not define any type. The revision 
thus consolidates the LinalgOps.h and LinalgTypes.h into a single Linalg.h 
header. Additionally, LinalgTypes.cpp is renamed to LinalgDialect.cpp to follow 
the convention adopted by other dialects such as the tensor dialect.

Depends On D115727 


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D115728

Files:
  clang/docs/tools/clang-formatted-files.txt
  mlir/include/mlir/Conversion/LinalgToStandard/LinalgToStandard.h
  mlir/include/mlir/Dialect/Linalg/Analysis/DependenceAnalysis.h
  mlir/include/mlir/Dialect/Linalg/IR/Linalg.h
  mlir/include/mlir/Dialect/Linalg/IR/LinalgOps.h
  mlir/include/mlir/Dialect/Linalg/IR/LinalgTypes.h
  mlir/include/mlir/Dialect/Linalg/Utils/Utils.h
  mlir/include/mlir/Dialect/SparseTensor/Utils/Merger.h
  mlir/include/mlir/InitAllDialects.h
  mlir/lib/CAPI/Dialect/Linalg.cpp
  mlir/lib/Conversion/LinalgToLLVM/LinalgToLLVM.cpp
  mlir/lib/Conversion/LinalgToSPIRV/LinalgToSPIRV.cpp
  mlir/lib/Conversion/LinalgToStandard/LinalgToStandard.cpp
  mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
  mlir/lib/Conversion/TosaToLinalg/TosaToLinalgPass.cpp
  mlir/lib/Dialect/Linalg/Analysis/DependenceAnalysis.cpp
  mlir/lib/Dialect/Linalg/ComprehensiveBufferize/LinalgInterfaceImpl.cpp
  mlir/lib/Dialect/Linalg/IR/CMakeLists.txt
  mlir/lib/Dialect/Linalg/IR/LinalgDialect.cpp
  mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
  mlir/lib/Dialect/Linalg/IR/LinalgTypes.cpp
  mlir/lib/Dialect/Linalg/Transforms/Bufferize.cpp
  mlir/lib/Dialect/Linalg/Transforms/Detensorize.cpp
  mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp
  mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp
  mlir/lib/Dialect/Linalg/Transforms/ElementwiseToLinalg.cpp
  mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp
  mlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp
  mlir/lib/Dialect/Linalg/Transforms/Generalization.cpp
  mlir/lib/Dialect/Linalg/Transforms/HoistPadding.cpp
  mlir/lib/Dialect/Linalg/Transforms/Hoisting.cpp
  mlir/lib/Dialect/Linalg/Transforms/InlineScalarOperands.cpp
  mlir/lib/Dialect/Linalg/Transforms/Interchange.cpp
  mlir/lib/Dialect/Linalg/Transforms/LinalgStrategyPasses.cpp
  mlir/lib/Dialect/Linalg/Transforms/Loops.cpp
  mlir/lib/Dialect/Linalg/Transforms/Promotion.cpp
  mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
  mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp
  mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
  mlir/lib/Dialect/Linalg/Utils/Utils.cpp
  mlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp
  mlir/lib/Dialect/Vector/VectorTransforms.cpp
  mlir/test/lib/Dialect/Linalg/TestComprehensiveBufferize.cpp
  mlir/test/lib/Dialect/Linalg/TestLinalgCodegenStrategy.cpp
  mlir/test/lib/Dialect/Linalg/TestLinalgDistribution.cpp
  mlir/test/lib/Dialect/Linalg/TestLinalgHoisting.cpp
  mlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp
  mlir/test/lib/Dialect/Test/TestDialect.h
  mlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp
  mlir/test/lib/IR/TestSlicing.cpp
  utils/bazel/llvm-project-overlay/mlir/BUILD.bazel

Index: utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
===
--- utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+++ utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
@@ -6569,11 +6569,10 @@
 name = "LinalgOps",
 srcs = [
 "lib/Dialect/Linalg/IR/LinalgOps.cpp",
-"lib/Dialect/Linalg/IR/LinalgTypes.cpp",
+"lib/Dialect/Linalg/IR/LinalgDialect.cpp",
 ],
 hdrs = [
-"include/mlir/Dialect/Linalg/IR/LinalgOps.h",
-"include/mlir/Dialect/Linalg/IR/LinalgTypes.h",
+"include/mlir/Dialect/Linalg/IR/Linalg.h"
 ],
 includes = ["include"],
 deps = [
Index: mlir/test/lib/IR/TestSlicing.cpp
===
--- mlir/test/lib/IR/TestSlicing.cpp
+++ mlir/test/lib/IR/TestSlicing.cpp
@@ -11,7 +11,7 @@
 //===--===//
 
 #include "mlir/Analysis/SliceAnalysis.h"
-#include "mlir/Dialect/Linalg/IR/LinalgOps.h"
+#include "mlir/Dialect/Linalg/IR/Linalg.h"
 #

[PATCH] D115728: [mlir][linalg] Replace LinalgOps.h and LinalgTypes.h by a single header.

2021-12-14 Thread Tobias Gysi via Phabricator via cfe-commits
gysit added a comment.

After removing the last Linalg Type in https://reviews.llvm.org/D115727, I 
think it would make sense to merge the LinalgTypes.h and LinalgOp.h headers. 
However, this causes quite of header fixes in downstream projects. We can also 
abandon this revision if preferred.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D115728

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


[PATCH] D115728: [mlir][linalg] Replace LinalgOps.h and LinalgTypes.h by a single header.

2021-12-15 Thread Tobias Gysi via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rGb7f2c108eb87: [mlir][linalg] Replace LinalgOps.h and 
LinalgTypes.h by a single header. (authored by gysit).

Changed prior to commit:
  https://reviews.llvm.org/D115728?vs=394234&id=394526#toc

Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D115728

Files:
  clang/docs/tools/clang-formatted-files.txt
  mlir/include/mlir/Conversion/LinalgToStandard/LinalgToStandard.h
  mlir/include/mlir/Dialect/Linalg/Analysis/DependenceAnalysis.h
  mlir/include/mlir/Dialect/Linalg/IR/Linalg.h
  mlir/include/mlir/Dialect/Linalg/IR/LinalgOps.h
  mlir/include/mlir/Dialect/Linalg/IR/LinalgTypes.h
  mlir/include/mlir/Dialect/Linalg/Utils/Utils.h
  mlir/include/mlir/Dialect/SparseTensor/Utils/Merger.h
  mlir/include/mlir/InitAllDialects.h
  mlir/lib/CAPI/Dialect/Linalg.cpp
  mlir/lib/Conversion/LinalgToLLVM/LinalgToLLVM.cpp
  mlir/lib/Conversion/LinalgToSPIRV/LinalgToSPIRV.cpp
  mlir/lib/Conversion/LinalgToStandard/LinalgToStandard.cpp
  mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
  mlir/lib/Conversion/TosaToLinalg/TosaToLinalgPass.cpp
  mlir/lib/Dialect/Linalg/Analysis/DependenceAnalysis.cpp
  mlir/lib/Dialect/Linalg/ComprehensiveBufferize/LinalgInterfaceImpl.cpp
  mlir/lib/Dialect/Linalg/IR/CMakeLists.txt
  mlir/lib/Dialect/Linalg/IR/LinalgDialect.cpp
  mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
  mlir/lib/Dialect/Linalg/IR/LinalgTypes.cpp
  mlir/lib/Dialect/Linalg/Transforms/Bufferize.cpp
  mlir/lib/Dialect/Linalg/Transforms/Detensorize.cpp
  mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp
  mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp
  mlir/lib/Dialect/Linalg/Transforms/ElementwiseToLinalg.cpp
  mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp
  mlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp
  mlir/lib/Dialect/Linalg/Transforms/Generalization.cpp
  mlir/lib/Dialect/Linalg/Transforms/HoistPadding.cpp
  mlir/lib/Dialect/Linalg/Transforms/Hoisting.cpp
  mlir/lib/Dialect/Linalg/Transforms/InlineScalarOperands.cpp
  mlir/lib/Dialect/Linalg/Transforms/Interchange.cpp
  mlir/lib/Dialect/Linalg/Transforms/LinalgStrategyPasses.cpp
  mlir/lib/Dialect/Linalg/Transforms/Loops.cpp
  mlir/lib/Dialect/Linalg/Transforms/Promotion.cpp
  mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
  mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp
  mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
  mlir/lib/Dialect/Linalg/Utils/Utils.cpp
  mlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp
  mlir/lib/Dialect/Vector/VectorTransforms.cpp
  mlir/test/lib/Dialect/Linalg/TestComprehensiveBufferize.cpp
  mlir/test/lib/Dialect/Linalg/TestLinalgCodegenStrategy.cpp
  mlir/test/lib/Dialect/Linalg/TestLinalgDistribution.cpp
  mlir/test/lib/Dialect/Linalg/TestLinalgHoisting.cpp
  mlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp
  mlir/test/lib/Dialect/Test/TestDialect.h
  mlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp
  mlir/test/lib/IR/TestSlicing.cpp
  utils/bazel/llvm-project-overlay/mlir/BUILD.bazel

Index: utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
===
--- utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+++ utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
@@ -6568,11 +6568,10 @@
 name = "LinalgOps",
 srcs = [
 "lib/Dialect/Linalg/IR/LinalgOps.cpp",
-"lib/Dialect/Linalg/IR/LinalgTypes.cpp",
+"lib/Dialect/Linalg/IR/LinalgDialect.cpp",
 ],
 hdrs = [
-"include/mlir/Dialect/Linalg/IR/LinalgOps.h",
-"include/mlir/Dialect/Linalg/IR/LinalgTypes.h",
+"include/mlir/Dialect/Linalg/IR/Linalg.h"
 ],
 includes = ["include"],
 deps = [
Index: mlir/test/lib/IR/TestSlicing.cpp
===
--- mlir/test/lib/IR/TestSlicing.cpp
+++ mlir/test/lib/IR/TestSlicing.cpp
@@ -11,7 +11,7 @@
 //===--===//
 
 #include "mlir/Analysis/SliceAnalysis.h"
-#include "mlir/Dialect/Linalg/IR/LinalgOps.h"
+#include "mlir/Dialect/Linalg/IR/Linalg.h"
 #include "mlir/Dialect/StandardOps/IR/Ops.h"
 #include "mlir/IR/BlockAndValueMapping.h"
 #include "mlir/IR/BuiltinOps.h"
Index: mlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp
===
--- mlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp
+++ mlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp
@@ -11,7 +11,7 @@
 #include "mlir/Analysis/SliceAnalysis.h"
 #include "mlir/Dialect/Affine/IR/AffineOps.h"
 #include "mlir/Dialect/LLVMIR/LLVMDialect.h"
-#include "mlir/Dialect/Linalg/IR/LinalgOps.h"
+#include "mlir/Dialect/Linalg/IR/Linalg.h"
 #include "mlir/Dialect/Linalg/Passes.h"
 #include "mlir/Dialect/Linalg/Transforms/Transforms.h"
 #include