brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 2aa242c Raw
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