@@ -296,6 +296,39 @@ llvm.func @bar(%arg0: !llvm.ptr, %arg1: !llvm.ptr, %arg2: !llvm.ptr) {
296
296
297
297
llvm.func @random () -> i1
298
298
299
+ llvm.func @region_branch (%arg0: !llvm.ptr {llvm.noalias }, %arg1: !llvm.ptr {llvm.noalias }) {
300
+ %0 = llvm.mlir.constant (5 : i64 ) : i32
301
+ test.region_if %arg0: !llvm.ptr -> !llvm.ptr then {
302
+ ^bb0 (%arg2: !llvm.ptr ):
303
+ test.region_if_yield %arg0 : !llvm.ptr
304
+ } else {
305
+ ^bb0 (%arg2: !llvm.ptr ):
306
+ test.region_if_yield %arg0 : !llvm.ptr
307
+ } join {
308
+ ^bb0 (%arg2: !llvm.ptr ):
309
+ llvm.store %0 , %arg2 : i32 , !llvm.ptr
310
+ test.region_if_yield %arg0 : !llvm.ptr
311
+ }
312
+ llvm.return
313
+ }
314
+
315
+ // CHECK-LABEL: llvm.func @region_branch_inlining
316
+ // CHECK: llvm.store
317
+ // CHECK-SAME: alias_scopes = [#[[$ARG0_SCOPE]]]
318
+ // CHECK-SAME: noalias_scopes = [#[[$ARG1_SCOPE]]]
319
+ llvm.func @region_branch_inlining (%arg0: !llvm.ptr , %arg1: !llvm.ptr , %arg2: !llvm.ptr ) {
320
+ llvm.call @region_branch (%arg0 , %arg2 ) : (!llvm.ptr , !llvm.ptr ) -> ()
321
+ llvm.return
322
+ }
323
+
324
+ // -----
325
+
326
+ // CHECK-DAG: #[[DOMAIN:.*]] = #llvm.alias_scope_domain<{{.*}}>
327
+ // CHECK-DAG: #[[$ARG0_SCOPE:.*]] = #llvm.alias_scope<id = {{.*}}, domain = #[[DOMAIN]]{{(,.*)?}}>
328
+ // CHECK-DAG: #[[$ARG1_SCOPE:.*]] = #llvm.alias_scope<id = {{.*}}, domain = #[[DOMAIN]]{{(,.*)?}}>
329
+
330
+ llvm.func @random () -> i1
331
+
299
332
llvm.func @block_arg (%arg0: !llvm.ptr {llvm.noalias }, %arg1: !llvm.ptr {llvm.noalias }) {
300
333
%0 = llvm.mlir.constant (5 : i64 ) : i32
301
334
%1 = llvm.mlir.constant (1 : i64 ) : i64
0 commit comments