66 lines · plain
1! RUN: bbc -hlfir=false %s -o "-" | FileCheck %s2 3! Test logical intrinsic operation lowering to fir.4 5! CHECK-LABEL:eqv0_test6LOGICAL(1) FUNCTION eqv0_test(x0, x1)7LOGICAL(1) :: x08LOGICAL(1) :: x19! CHECK-DAG:[[reg1:%[0-9]+]] = fir.load %arg010! CHECK-DAG:[[reg2:%[0-9]+]] = fir.load %arg111! CHECK-DAG:[[reg3:%[0-9]+]] = fir.convert [[reg1]] {{.*}} -> i112! CHECK-DAG:[[reg4:%[0-9]+]] = fir.convert [[reg2]] {{.*}} -> i113! CHECK:[[reg5:%[0-9]+]] = arith.cmpi eq, [[reg3]], [[reg4]]14! CHECK:fir.convert [[reg5]] {{.*}} -> !fir.logical<1>15eqv0_test = x0 .EQV. x116END FUNCTION17 18! CHECK-LABEL:neqv1_test19LOGICAL(1) FUNCTION neqv1_test(x0, x1)20LOGICAL(1) :: x021LOGICAL(1) :: x122! CHECK-DAG:[[reg1:%[0-9]+]] = fir.load %arg023! CHECK-DAG:[[reg2:%[0-9]+]] = fir.load %arg124! CHECK-DAG:[[reg3:%[0-9]+]] = fir.convert [[reg1]] {{.*}} -> i125! CHECK-DAG:[[reg4:%[0-9]+]] = fir.convert [[reg2]] {{.*}} -> i126! CHECK:[[reg5:%[0-9]+]] = arith.cmpi ne, [[reg3]], [[reg4]]27! CHECK:fir.convert [[reg5]] {{.*}} -> !fir.logical<1>28neqv1_test = x0 .NEQV. x129END FUNCTION30 31! CHECK-LABEL:or2_test32LOGICAL(1) FUNCTION or2_test(x0, x1)33LOGICAL(1) :: x034LOGICAL(1) :: x135! CHECK-DAG:[[reg1:%[0-9]+]] = fir.load %arg036! CHECK-DAG:[[reg2:%[0-9]+]] = fir.load %arg137! CHECK-DAG:[[reg3:%[0-9]+]] = fir.convert [[reg1]] {{.*}} -> i138! CHECK-DAG:[[reg4:%[0-9]+]] = fir.convert [[reg2]] {{.*}} -> i139! CHECK:[[reg5:%[0-9]+]] = arith.ori [[reg3]], [[reg4]]40! CHECK:fir.convert [[reg5]] {{.*}} -> !fir.logical<1>41or2_test = x0 .OR. x142END FUNCTION43 44! CHECK-LABEL:and3_test45LOGICAL(1) FUNCTION and3_test(x0, x1)46LOGICAL(1) :: x047LOGICAL(1) :: x148! CHECK-DAG:[[reg1:%[0-9]+]] = fir.load %arg049! CHECK-DAG:[[reg2:%[0-9]+]] = fir.load %arg150! CHECK-DAG:[[reg3:%[0-9]+]] = fir.convert [[reg1]] {{.*}} -> i151! CHECK-DAG:[[reg4:%[0-9]+]] = fir.convert [[reg2]] {{.*}} -> i152! CHECK:[[reg5:%[0-9]+]] = arith.andi [[reg3]], [[reg4]]53! CHECK:fir.convert [[reg5]] {{.*}} -> !fir.logical<1>54and3_test = x0 .AND. x155END FUNCTION56 57! CHECK-LABEL:not4_test58LOGICAL(1) FUNCTION not4_test(x0)59LOGICAL(1) :: x060! CHECK:[[reg1:%[0-9]+]] = fir.load %arg061! CHECK:[[reg2:%[0-9]+]] = fir.convert [[reg1]] {{.*}} -> i162! CHECK:[[reg3:%[0-9]+]] = arith.xori [[reg2]], %true63! CHECK:fir.convert [[reg3]] {{.*}} -> !fir.logical<1>64not4_test = .NOT. x065END FUNCTION66