Changeset View
Changeset View
Standalone View
Standalone View
mlir/test/Dialect/LLVMIR/roundtrip.mlir
Show First 20 Lines • Show All 327 Lines • ▼ Show 20 Lines | func @useFenceInst() { | ||||
// CHECK: syncscope("agent") seq_cst | // CHECK: syncscope("agent") seq_cst | ||||
llvm.fence syncscope("agent") seq_cst | llvm.fence syncscope("agent") seq_cst | ||||
// CHECK: seq_cst | // CHECK: seq_cst | ||||
llvm.fence syncscope("") seq_cst | llvm.fence syncscope("") seq_cst | ||||
// CHECK: release | // CHECK: release | ||||
llvm.fence release | llvm.fence release | ||||
return | return | ||||
} | } | ||||
// Dialect cast operation. | |||||
// CHECK-LABEL: @castI32 | |||||
// CHECK-SAME: %[[ARG0:.*]]: !llvm.i32 | |||||
// CHECK: %[[CAST:.*]] = llvm.mlir.cast %[[ARG0]] : !llvm.i32 to i32 | |||||
// CHECK: llvm.mlir.cast %[[CAST]] : i32 to !llvm.i32 | |||||
func @castI32(%arg0: !llvm.i32) { | |||||
%0 = llvm.mlir.cast %arg0 : !llvm.i32 to i32 | |||||
%1 = llvm.mlir.cast %0 : i32 to !llvm.i32 | |||||
return | |||||
} | |||||
// CHECK-LABEL: @castFloat | |||||
// CHECK-SAME: %[[ARG0:.*]]: !llvm.float | |||||
// CHECK: %[[CAST:.*]] = llvm.mlir.cast %[[ARG0]] : !llvm.float to f32 | |||||
// CHECK: llvm.mlir.cast %[[CAST]] : f32 to !llvm.float | |||||
func @castFloat(%arg0: !llvm.float) { | |||||
%0 = llvm.mlir.cast %arg0 : !llvm.float to f32 | |||||
%1 = llvm.mlir.cast %0 : f32 to !llvm.float | |||||
return | |||||
} | |||||
// CHECK-LABEL: @castVector | |||||
// CHECK-SAME: %[[ARG0:.*]]: !llvm<"<3 x float>"> | |||||
// CHECK: %[[CAST:.*]] = llvm.mlir.cast %[[ARG0]] : !llvm<"<3 x float>"> to vector<3xf32> | |||||
// CHECK: llvm.mlir.cast %[[CAST]] : vector<3xf32> to !llvm<"<3 x float>"> | |||||
func @castVector(%arg0: !llvm<"<3 x float>">) { | |||||
%0 = llvm.mlir.cast %arg0 : !llvm<"<3 x float>"> to vector<3xf32> | |||||
%1 = llvm.mlir.cast %0 : vector<3xf32> to !llvm<"<3 x float>"> | |||||
return | |||||
} | |||||
// CHECK-LABEL: @castMemref | |||||
// CHECK-SAME: %[[ARG0:.*]]: !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }"> | |||||
// CHECK: %[[CAST:.*]] = llvm.mlir.cast %[[ARG0]] : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }"> to memref<2x3xf32> | |||||
// CHECK: llvm.mlir.cast %[[CAST]] : memref<2x3xf32> to !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }"> | |||||
func @castMemref(%arg0: !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }">) { | |||||
%0 = llvm.mlir.cast %arg0 : !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }"> to memref<2x3xf32> | |||||
%1 = llvm.mlir.cast %0 : memref<2x3xf32> to !llvm<"{ float*, float*, i64, [2 x i64], [2 x i64] }"> | |||||
return | |||||
} | |||||
// CHECK-LABEL: @castMemref0D | |||||
// CHECK-SAME: %[[ARG0:.*]]: !llvm<"{ float*, float*, i64 }"> | |||||
// CHECK: %[[CAST:.*]] = llvm.mlir.cast %[[ARG0]] : !llvm<"{ float*, float*, i64 }"> to memref<f32> | |||||
// CHECK: llvm.mlir.cast %[[CAST]] : memref<f32> to !llvm<"{ float*, float*, i64 }"> | |||||
func @castMemref0D(%arg0: !llvm<"{ float*, float*, i64 }">) { | |||||
%0 = llvm.mlir.cast %arg0 : !llvm<"{ float*, float*, i64 }"> to memref<f32> | |||||
%1 = llvm.mlir.cast %0 : memref<f32> to !llvm<"{ float*, float*, i64 }"> | |||||
return | |||||
} |