Skip to content

Commit 8595404

Browse files
[SYCL-MLIR] Fix merge
Signed-off-by: Tsang, Whitney <[email protected]>
1 parent b1aff0f commit 8595404

File tree

3 files changed

+14
-24
lines changed

3 files changed

+14
-24
lines changed

mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2591,10 +2591,10 @@ namespace {
25912591
struct LLVMInlinerInterface : public DialectInlinerInterface {
25922592
using DialectInlinerInterface::DialectInlinerInterface;
25932593

2594-
/// Conservatively only allow inlining of pure ops.
2594+
/// All operations in the LLVM dialect are legal to inline.
25952595
bool isLegalToInline(Operation *op, Region *, bool,
25962596
BlockAndValueMapping &) const final {
2597-
return isPure(op);
2597+
return true;
25982598
}
25992599
};
26002600
} // end anonymous namespace

polygeist/lib/polygeist/Passes/ConvertPolygeistToLLVM.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,8 +194,10 @@ struct AllocMemrefOpLowering : public ConvertOpToLLVMPattern<memref::AllocOp> {
194194
getMemRefDescriptorSizes(loc, memrefType, adaptor.getOperands(), rewriter,
195195
sizes, strides, sizeBytes);
196196

197-
const auto alignment = allocOp.getAlignment().transform(
198-
[&](auto val) { return createIndexConstant(rewriter, loc, val); });
197+
const auto alignment =
198+
llvm::transformOptional(allocOp.getAlignment(), [&](auto val) {
199+
return createIndexConstant(rewriter, loc, val);
200+
});
199201
if (alignment) {
200202
// Adjust the allocation size to consider alignment.
201203
sizeBytes = rewriter.create<LLVM::AddOp>(loc, sizeBytes, *alignment);

polygeist/tools/cgeist/Test/Verification/xor.c

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,8 @@ void foo(int A[10], int a) {
3434
// CHECK-LABEL: func.func @xor_i8(
3535
// CHECK-SAME: %[[VAL_0:.*]]: i8,
3636
// CHECK-SAME: %[[VAL_1:.*]]: i8) -> i8
37-
// CHECK-NEXT: %[[VAL_2:.*]] = arith.extsi %[[VAL_0]] : i8 to i32
38-
// CHECK-NEXT: %[[VAL_3:.*]] = arith.extsi %[[VAL_1]] : i8 to i32
39-
// CHECK-NEXT: %[[VAL_4:.*]] = arith.xori %[[VAL_2]], %[[VAL_3]] : i32
40-
// CHECK-NEXT: %[[VAL_5:.*]] = arith.trunci %[[VAL_4]] : i32 to i8
41-
// CHECK-NEXT: return %[[VAL_5]] : i8
37+
// CHECK-NEXT: %[[VAL_2:.*]] = arith.xori %[[VAL_0]], %[[VAL_1]] : i8
38+
// CHECK-NEXT: return %[[VAL_2]] : i8
4239
// CHECK-NEXT: }
4340
char xor_i8(char a, char b) {
4441
return a ^ b;
@@ -47,11 +44,8 @@ char xor_i8(char a, char b) {
4744
// CHECK-LABEL: func.func @xor_i16(
4845
// CHECK-SAME: %[[VAL_0:.*]]: i16,
4946
// CHECK-SAME: %[[VAL_1:.*]]: i16) -> i16
50-
// CHECK-NEXT: %[[VAL_2:.*]] = arith.extsi %[[VAL_0]] : i16 to i32
51-
// CHECK-NEXT: %[[VAL_3:.*]] = arith.extsi %[[VAL_1]] : i16 to i32
52-
// CHECK-NEXT: %[[VAL_4:.*]] = arith.xori %[[VAL_2]], %[[VAL_3]] : i32
53-
// CHECK-NEXT: %[[VAL_5:.*]] = arith.trunci %[[VAL_4]] : i32 to i16
54-
// CHECK-NEXT: return %[[VAL_5]] : i16
47+
// CHECK-NEXT: %[[VAL_2:.*]] = arith.xori %[[VAL_0]], %[[VAL_1]] : i16
48+
// CHECK-NEXT: return %[[VAL_2]] : i16
5549
// CHECK-NEXT: }
5650
short xor_i16(short a, short b) {
5751
return a ^ b;
@@ -83,11 +77,8 @@ long xor_i64(long a, long b) {
8377
// CHECK-LABEL: func.func @xor_ui8(
8478
// CHECK-SAME: %[[VAL_0:.*]]: i8,
8579
// CHECK-SAME: %[[VAL_1:.*]]: i8) -> i8
86-
// CHECK-NEXT: %[[VAL_2:.*]] = arith.extui %[[VAL_0]] : i8 to i32
87-
// CHECK-NEXT: %[[VAL_3:.*]] = arith.extui %[[VAL_1]] : i8 to i32
88-
// CHECK-NEXT: %[[VAL_4:.*]] = arith.xori %[[VAL_2]], %[[VAL_3]] : i32
89-
// CHECK-NEXT: %[[VAL_5:.*]] = arith.trunci %[[VAL_4]] : i32 to i8
90-
// CHECK-NEXT: return %[[VAL_5]] : i8
80+
// CHECK-NEXT: %[[VAL_2:.*]] = arith.xori %[[VAL_0]], %[[VAL_1]] : i8
81+
// CHECK-NEXT: return %[[VAL_2]] : i8
9182
// CHECK-NEXT: }
9283
unsigned char xor_ui8(unsigned char a, unsigned char b) {
9384
return a ^ b;
@@ -97,11 +88,8 @@ unsigned char xor_ui8(unsigned char a, unsigned char b) {
9788
// CHECK-LABEL: func.func @xor_ui16(
9889
// CHECK-SAME: %[[VAL_0:.*]]: i16,
9990
// CHECK-SAME: %[[VAL_1:.*]]: i16) -> i16
100-
// CHECK-NEXT: %[[VAL_2:.*]] = arith.extui %[[VAL_0]] : i16 to i32
101-
// CHECK-NEXT: %[[VAL_3:.*]] = arith.extui %[[VAL_1]] : i16 to i32
102-
// CHECK-NEXT: %[[VAL_4:.*]] = arith.xori %[[VAL_2]], %[[VAL_3]] : i32
103-
// CHECK-NEXT: %[[VAL_5:.*]] = arith.trunci %[[VAL_4]] : i32 to i16
104-
// CHECK-NEXT: return %[[VAL_5]] : i16
91+
// CHECK-NEXT: %[[VAL_2:.*]] = arith.xori %[[VAL_0]], %[[VAL_1]] : i16
92+
// CHECK-NEXT: return %[[VAL_2]] : i16
10593
// CHECK-NEXT: }
10694
unsigned short xor_ui16(unsigned short a, unsigned short b) {
10795
return a ^ b;

0 commit comments

Comments
 (0)