110 lines · plain
1! RUN: bbc -hlfir=false %s -o "-" | FileCheck %s2 3! Test integer intrinsic operation lowering to fir.4 5! CHECK-LABEL:eq0_test6LOGICAL FUNCTION eq0_test(x0, x1)7INTEGER(4) :: x08INTEGER(4) :: x19! CHECK-DAG:[[reg1:%[0-9]+]] = fir.load %arg010! CHECK-DAG:[[reg2:%[0-9]+]] = fir.load %arg111! CHECK:[[reg3:%[0-9]+]] = arith.cmpi eq, [[reg1]], [[reg2]] : i3212! CHECK:fir.convert [[reg3]] {{.*}} -> !fir.logical<4>13eq0_test = x0 .EQ. x114END FUNCTION15 16! CHECK-LABEL:ne1_test17LOGICAL FUNCTION ne1_test(x0, x1)18INTEGER(4) :: x019INTEGER(4) :: x120! CHECK-DAG:[[reg1:%[0-9]+]] = fir.load %arg021! CHECK-DAG:[[reg2:%[0-9]+]] = fir.load %arg122! CHECK:[[reg3:%[0-9]+]] = arith.cmpi ne, [[reg1]], [[reg2]] : i3223! CHECK:fir.convert [[reg3]] {{.*}} -> !fir.logical<4>24ne1_test = x0 .NE. x125END FUNCTION26 27! CHECK-LABEL:lt2_test28LOGICAL FUNCTION lt2_test(x0, x1)29INTEGER(4) :: x030INTEGER(4) :: x131! CHECK-DAG:[[reg1:%[0-9]+]] = fir.load %arg032! CHECK-DAG:[[reg2:%[0-9]+]] = fir.load %arg133! CHECK:[[reg3:%[0-9]+]] = arith.cmpi slt, [[reg1]], [[reg2]] : i3234! CHECK:fir.convert [[reg3]] {{.*}} -> !fir.logical<4>35lt2_test = x0 .LT. x136END FUNCTION37 38! CHECK-LABEL:le3_test39LOGICAL FUNCTION le3_test(x0, x1)40INTEGER(4) :: x041INTEGER(4) :: x142! CHECK-DAG:[[reg1:%[0-9]+]] = fir.load %arg043! CHECK-DAG:[[reg2:%[0-9]+]] = fir.load %arg144! CHECK:[[reg3:%[0-9]+]] = arith.cmpi sle, [[reg1]], [[reg2]] : i3245! CHECK:fir.convert [[reg3]] {{.*}} -> !fir.logical<4>46le3_test = x0 .LE. x147END FUNCTION48 49! CHECK-LABEL:gt4_test50LOGICAL FUNCTION gt4_test(x0, x1)51INTEGER(4) :: x052INTEGER(4) :: x153! CHECK-DAG:[[reg1:%[0-9]+]] = fir.load %arg054! CHECK-DAG:[[reg2:%[0-9]+]] = fir.load %arg155! CHECK:[[reg3:%[0-9]+]] = arith.cmpi sgt, [[reg1]], [[reg2]] : i3256! CHECK:fir.convert [[reg3]] {{.*}} -> !fir.logical<4>57gt4_test = x0 .GT. x158END FUNCTION59 60! CHECK-LABEL:ge5_test61LOGICAL FUNCTION ge5_test(x0, x1)62INTEGER(4) :: x063INTEGER(4) :: x164! CHECK-DAG:[[reg1:%[0-9]+]] = fir.load %arg065! CHECK-DAG:[[reg2:%[0-9]+]] = fir.load %arg166! CHECK:[[reg3:%[0-9]+]] = arith.cmpi sge, [[reg1]], [[reg2]] : i3267! CHECK:fir.convert [[reg3]] {{.*}} -> !fir.logical<4>68ge5_test = x0 .GE. x169END FUNCTION70 71! CHECK-LABEL:add6_test72INTEGER(4) FUNCTION add6_test(x0, x1)73INTEGER(4) :: x074INTEGER(4) :: x175! CHECK-DAG:[[reg1:%[0-9]+]] = fir.load %arg076! CHECK-DAG:[[reg2:%[0-9]+]] = fir.load %arg177! CHECK:addi [[reg1]], [[reg2]] : i3278add6_test = x0 + x179END FUNCTION80 81! CHECK-LABEL:sub7_test82INTEGER(4) FUNCTION sub7_test(x0, x1)83INTEGER(4) :: x084INTEGER(4) :: x185! CHECK-DAG:[[reg1:%[0-9]+]] = fir.load %arg086! CHECK-DAG:[[reg2:%[0-9]+]] = fir.load %arg187! CHECK:subi [[reg1]], [[reg2]] : i3288sub7_test = x0 - x189END FUNCTION90 91! CHECK-LABEL:mult8_test92INTEGER(4) FUNCTION mult8_test(x0, x1)93INTEGER(4) :: x094INTEGER(4) :: x195! CHECK-DAG:[[reg1:%[0-9]+]] = fir.load %arg096! CHECK-DAG:[[reg2:%[0-9]+]] = fir.load %arg197! CHECK:muli [[reg1]], [[reg2]] : i3298mult8_test = x0 * x199END FUNCTION100 101! CHECK-LABEL:div9_test102INTEGER(4) FUNCTION div9_test(x0, x1)103INTEGER(4) :: x0104INTEGER(4) :: x1105! CHECK-DAG:[[reg1:%[0-9]+]] = fir.load %arg0106! CHECK-DAG:[[reg2:%[0-9]+]] = fir.load %arg1107! CHECK:arith.divsi [[reg1]], [[reg2]] : i32108div9_test = x0 / x1109END FUNCTION110