diff --git a/mlir/test/Dialect/Linalg/loops.mlir b/mlir/test/Dialect/Linalg/loops.mlir --- a/mlir/test/Dialect/Linalg/loops.mlir +++ b/mlir/test/Dialect/Linalg/loops.mlir @@ -1144,14 +1144,18 @@ indexing_maps = #scalar_access, library_call = "some_external_fn" } -func @scalar_code(%arg0: memref, %arg1 : memref, %arg2 : memref) +func @scalar_code(%arg0: memref, %arg1 : memref, %arg2 : memref, %arg3 : i1) { linalg.generic #scalar_trait ins(%arg0, %arg1 : memref, memref) outs(%arg2 : memref) { ^bb(%a : f32, %b : f32, %c : f32) : - %0 = addf %a, %b : f32 - linalg.yield %0 : f32 + %result = scf.if %arg3 -> (f32) { + scf.yield %a : f32 + } else { + scf.yield %b : f32 + } + linalg.yield %result : f32 } return } @@ -1162,7 +1166,10 @@ // CHECKLOOP-NOT: scf.for // CHECKLOOP: load %[[ARG0]][] // CHECKLOOP: load %[[ARG1]][] -// CHECKLOOP: addf +// CHECKLOOP: scf.if +// CHECKLOOP: scf.yield +// CHECKLOOP: else +// CHECKLOOP: scf.yield // CHECKLOOP: store %{{.*}}, %[[ARG2]][] // CHECKPARALLEL-LABEL: @scalar_code @@ -1172,7 +1179,10 @@ // CHECKPARALLEL-NOT: scf.for // CHECKPARALLEL: load %[[ARG0]][] // CHECKPARALLEL: load %[[ARG1]][] -// CHECKPARALLEL: addf +// CHECKPARALLEL: scf.if +// CHECKPARALLEL: scf.yield +// CHECKPARALLEL: else +// CHECKPARALLEL: scf.yield // CHECKPARALLEL: store %{{.*}}, %[[ARG2]][] //----------------------------------------------------------------------------//