1! RUN: bbc -emit-fir -hlfir=false %s -o - | FileCheck %s 2! RUN: %flang_fc1 -emit-fir -flang-deprecated-no-hlfir %s -o - | FileCheck %s 3 4! CHECK-LABEL: leadz1_test 5! CHECK-SAME: %[[AREF:.*]]: !fir.ref<i8>{{.*}}, %[[BREF:.*]]: !fir.ref<i32>{{.*}} 6subroutine leadz1_test(a, b) 7 integer(1) :: a 8 integer :: b 9 10 ! CHECK: %[[AVAL:.*]] = fir.load %[[AREF]] : !fir.ref<i8> 11 b = leadz(a) 12 ! CHECK: %[[COUNT:.*]] = math.ctlz %[[AVAL]] : i8 13 ! CHECK: %[[RESULT:.*]] = fir.convert %[[COUNT]] : (i8) -> i32 14 ! CHECK: fir.store %[[RESULT]] to %[[BREF]] : !fir.ref<i32> 15end subroutine leadz1_test 16 17! CHECK-LABEL: leadz2_test 18! CHECK-SAME: %[[AREF:.*]]: !fir.ref<i16>{{.*}}, %[[BREF:.*]]: !fir.ref<i32>{{.*}} 19subroutine leadz2_test(a, b) 20 integer(2) :: a 21 integer :: b 22 23 ! CHECK: %[[AVAL:.*]] = fir.load %[[AREF]] : !fir.ref<i16> 24 b = leadz(a) 25 ! CHECK: %[[COUNT:.*]] = math.ctlz %[[AVAL]] : i16 26 ! CHECK: %[[RESULT:.*]] = fir.convert %[[COUNT]] : (i16) -> i32 27 ! CHECK: fir.store %[[RESULT]] to %[[BREF]] : !fir.ref<i32> 28end subroutine leadz2_test 29 30! CHECK-LABEL: leadz4_test 31! CHECK-SAME: %[[AREF:.*]]: !fir.ref<i32>{{.*}}, %[[BREF:.*]]: !fir.ref<i32>{{.*}} 32subroutine leadz4_test(a, b) 33 integer(4) :: a 34 integer :: b 35 36 ! CHECK: %[[AVAL:.*]] = fir.load %[[AREF]] : !fir.ref<i32> 37 b = leadz(a) 38 ! CHECK: %[[RESULT:.*]] = math.ctlz %[[AVAL]] : i32 39 ! CHECK: fir.store %[[RESULT]] to %[[BREF]] : !fir.ref<i32> 40end subroutine leadz4_test 41 42! CHECK-LABEL: leadz8_test 43! CHECK-SAME: %[[AREF:.*]]: !fir.ref<i64>{{.*}}, %[[BREF:.*]]: !fir.ref<i32>{{.*}} 44subroutine leadz8_test(a, b) 45 integer(8) :: a 46 integer :: b 47 48 ! CHECK: %[[AVAL:.*]] = fir.load %[[AREF]] : !fir.ref<i64> 49 b = leadz(a) 50 ! CHECK: %[[COUNT:.*]] = math.ctlz %[[AVAL]] : i64 51 ! CHECK: %[[RESULT:.*]] = fir.convert %[[COUNT]] : (i64) -> i32 52 ! CHECK: fir.store %[[RESULT]] to %[[BREF]] : !fir.ref<i32> 53end subroutine leadz8_test 54 55! CHECK-LABEL: leadz16_test 56! CHECK-SAME: %[[AREF:.*]]: !fir.ref<i128>{{.*}}, %[[BREF:.*]]: !fir.ref<i32>{{.*}} 57subroutine leadz16_test(a, b) 58 integer(16) :: a 59 integer :: b 60 61 ! CHECK: %[[AVAL:.*]] = fir.load %[[AREF]] : !fir.ref<i128> 62 b = leadz(a) 63 ! CHECK: %[[COUNT:.*]] = math.ctlz %[[AVAL]] : i128 64 ! CHECK: %[[RESULT:.*]] = fir.convert %[[COUNT]] : (i128) -> i32 65 ! CHECK: fir.store %[[RESULT]] to %[[BREF]] : !fir.ref<i32> 66end subroutine leadz16_test 67