29 lines · plain
1// Test hlfir.where operation parse, verify (no errors), and unparse.2// RUN: fir-opt %s | fir-opt | FileCheck %s3 4func.func @test_where(%mask: !fir.ref<!fir.array<10x!fir.logical<4>>>, %x: !fir.ref<!fir.array<10xf32>>, %y: !fir.box<!fir.array<?xf32>>) {5 hlfir.where {6 hlfir.yield %mask : !fir.ref<!fir.array<10x!fir.logical<4>>>7 } do {8 hlfir.region_assign {9 hlfir.yield %y : !fir.box<!fir.array<?xf32>>10 } to {11 hlfir.yield %x : !fir.ref<!fir.array<10xf32>>12 }13 }14 return15}16// CHECK-LABEL: func.func @test_where(17// CHECK-SAME: %[[VAL_0:.*]]: !fir.ref<!fir.array<10x!fir.logical<4>>>,18// CHECK-SAME: %[[VAL_1:.*]]: !fir.ref<!fir.array<10xf32>>,19// CHECK-SAME: %[[VAL_2:.*]]: !fir.box<!fir.array<?xf32>>) {20// CHECK: hlfir.where {21// CHECK: hlfir.yield %[[VAL_0]] : !fir.ref<!fir.array<10x!fir.logical<4>>>22// CHECK: } do {23// CHECK: hlfir.region_assign {24// CHECK: hlfir.yield %[[VAL_2]] : !fir.box<!fir.array<?xf32>>25// CHECK: } to {26// CHECK: hlfir.yield %[[VAL_1]] : !fir.ref<!fir.array<10xf32>>27// CHECK: }28// CHECK: }29