1! RUN: bbc -hlfir=false %s -o "-" | FileCheck %s 2 3! Test integer intrinsic operation lowering to fir. 4 5! CHECK-LABEL:eq0_test 6LOGICAL FUNCTION eq0_test(x0, x1) 7INTEGER(4) :: x0 8INTEGER(4) :: x1 9! CHECK-DAG:[[reg1:%[0-9]+]] = fir.load %arg0 10! CHECK-DAG:[[reg2:%[0-9]+]] = fir.load %arg1 11! CHECK:[[reg3:%[0-9]+]] = arith.cmpi eq, [[reg1]], [[reg2]] : i32 12! CHECK:fir.convert [[reg3]] {{.*}} -> !fir.logical<4> 13eq0_test = x0 .EQ. x1 14END FUNCTION 15 16! CHECK-LABEL:ne1_test 17LOGICAL FUNCTION ne1_test(x0, x1) 18INTEGER(4) :: x0 19INTEGER(4) :: x1 20! CHECK-DAG:[[reg1:%[0-9]+]] = fir.load %arg0 21! CHECK-DAG:[[reg2:%[0-9]+]] = fir.load %arg1 22! CHECK:[[reg3:%[0-9]+]] = arith.cmpi ne, [[reg1]], [[reg2]] : i32 23! CHECK:fir.convert [[reg3]] {{.*}} -> !fir.logical<4> 24ne1_test = x0 .NE. x1 25END FUNCTION 26 27! CHECK-LABEL:lt2_test 28LOGICAL FUNCTION lt2_test(x0, x1) 29INTEGER(4) :: x0 30INTEGER(4) :: x1 31! CHECK-DAG:[[reg1:%[0-9]+]] = fir.load %arg0 32! CHECK-DAG:[[reg2:%[0-9]+]] = fir.load %arg1 33! CHECK:[[reg3:%[0-9]+]] = arith.cmpi slt, [[reg1]], [[reg2]] : i32 34! CHECK:fir.convert [[reg3]] {{.*}} -> !fir.logical<4> 35lt2_test = x0 .LT. x1 36END FUNCTION 37 38! CHECK-LABEL:le3_test 39LOGICAL FUNCTION le3_test(x0, x1) 40INTEGER(4) :: x0 41INTEGER(4) :: x1 42! CHECK-DAG:[[reg1:%[0-9]+]] = fir.load %arg0 43! CHECK-DAG:[[reg2:%[0-9]+]] = fir.load %arg1 44! CHECK:[[reg3:%[0-9]+]] = arith.cmpi sle, [[reg1]], [[reg2]] : i32 45! CHECK:fir.convert [[reg3]] {{.*}} -> !fir.logical<4> 46le3_test = x0 .LE. x1 47END FUNCTION 48 49! CHECK-LABEL:gt4_test 50LOGICAL FUNCTION gt4_test(x0, x1) 51INTEGER(4) :: x0 52INTEGER(4) :: x1 53! CHECK-DAG:[[reg1:%[0-9]+]] = fir.load %arg0 54! CHECK-DAG:[[reg2:%[0-9]+]] = fir.load %arg1 55! CHECK:[[reg3:%[0-9]+]] = arith.cmpi sgt, [[reg1]], [[reg2]] : i32 56! CHECK:fir.convert [[reg3]] {{.*}} -> !fir.logical<4> 57gt4_test = x0 .GT. x1 58END FUNCTION 59 60! CHECK-LABEL:ge5_test 61LOGICAL FUNCTION ge5_test(x0, x1) 62INTEGER(4) :: x0 63INTEGER(4) :: x1 64! CHECK-DAG:[[reg1:%[0-9]+]] = fir.load %arg0 65! CHECK-DAG:[[reg2:%[0-9]+]] = fir.load %arg1 66! CHECK:[[reg3:%[0-9]+]] = arith.cmpi sge, [[reg1]], [[reg2]] : i32 67! CHECK:fir.convert [[reg3]] {{.*}} -> !fir.logical<4> 68ge5_test = x0 .GE. x1 69END FUNCTION 70 71! CHECK-LABEL:add6_test 72INTEGER(4) FUNCTION add6_test(x0, x1) 73INTEGER(4) :: x0 74INTEGER(4) :: x1 75! CHECK-DAG:[[reg1:%[0-9]+]] = fir.load %arg0 76! CHECK-DAG:[[reg2:%[0-9]+]] = fir.load %arg1 77! CHECK:addi [[reg1]], [[reg2]] : i32 78add6_test = x0 + x1 79END FUNCTION 80 81! CHECK-LABEL:sub7_test 82INTEGER(4) FUNCTION sub7_test(x0, x1) 83INTEGER(4) :: x0 84INTEGER(4) :: x1 85! CHECK-DAG:[[reg1:%[0-9]+]] = fir.load %arg0 86! CHECK-DAG:[[reg2:%[0-9]+]] = fir.load %arg1 87! CHECK:subi [[reg1]], [[reg2]] : i32 88sub7_test = x0 - x1 89END FUNCTION 90 91! CHECK-LABEL:mult8_test 92INTEGER(4) FUNCTION mult8_test(x0, x1) 93INTEGER(4) :: x0 94INTEGER(4) :: x1 95! CHECK-DAG:[[reg1:%[0-9]+]] = fir.load %arg0 96! CHECK-DAG:[[reg2:%[0-9]+]] = fir.load %arg1 97! CHECK:muli [[reg1]], [[reg2]] : i32 98mult8_test = x0 * x1 99END FUNCTION 100 101! CHECK-LABEL:div9_test 102INTEGER(4) FUNCTION div9_test(x0, x1) 103INTEGER(4) :: x0 104INTEGER(4) :: x1 105! CHECK-DAG:[[reg1:%[0-9]+]] = fir.load %arg0 106! CHECK-DAG:[[reg2:%[0-9]+]] = fir.load %arg1 107! CHECK:arith.divsi [[reg1]], [[reg2]] : i32 108div9_test = x0 / x1 109END FUNCTION 110