77 lines · plain
1! RUN: bbc -emit-fir -hlfir=false %s -o - | FileCheck %s2! RUN: %flang_fc1 -emit-fir -flang-deprecated-no-hlfir %s -o - | FileCheck %s3 4! CHECK-LABEL: poppar1_test5! CHECK-SAME: %[[AREF:.*]]: !fir.ref<i8>{{.*}}, %[[BREF:.*]]: !fir.ref<i32>{{.*}}6subroutine poppar1_test(a, b)7 integer(1) :: a8 integer :: b9 10 ! CHECK: %[[AVAL:.*]] = fir.load %[[AREF]] : !fir.ref<i8>11 b = poppar(a)12 ! CHECK: %[[COUNT:.*]] = math.ctpop %[[AVAL]] : i813 ! CHECK: %[[CONV:.*]] = fir.convert %[[COUNT]] : (i8) -> i3214 ! CHECK: %[[C1:.*]] = arith.constant 1 : i3215 ! CHECK: %[[RESULT:.*]] = arith.andi %[[CONV]], %[[C1]] : i3216 ! CHECK: fir.store %[[RESULT]] to %[[BREF]] : !fir.ref<i32>17end subroutine poppar1_test18 19! CHECK-LABEL: poppar2_test20! CHECK-SAME: %[[AREF:.*]]: !fir.ref<i16>{{.*}}, %[[BREF:.*]]: !fir.ref<i32>{{.*}}21subroutine poppar2_test(a, b)22 integer(2) :: a23 integer :: b24 25 ! CHECK: %[[AVAL:.*]] = fir.load %[[AREF]] : !fir.ref<i16>26 b = poppar(a)27 ! CHECK: %[[COUNT:.*]] = math.ctpop %[[AVAL]] : i1628 ! CHECK: %[[CONV:.*]] = fir.convert %[[COUNT]] : (i16) -> i3229 ! CHECK: %[[C1:.*]] = arith.constant 1 : i3230 ! CHECK: %[[RESULT:.*]] = arith.andi %[[CONV]], %[[C1]] : i3231 ! CHECK: fir.store %[[RESULT]] to %[[BREF]] : !fir.ref<i32>32end subroutine poppar2_test33 34! CHECK-LABEL: poppar4_test35! CHECK-SAME: %[[AREF:.*]]: !fir.ref<i32>{{.*}}, %[[BREF:.*]]: !fir.ref<i32>{{.*}}36subroutine poppar4_test(a, b)37 integer(4) :: a38 integer :: b39 40 ! CHECK: %[[AVAL:.*]] = fir.load %[[AREF]] : !fir.ref<i32>41 b = poppar(a)42 ! CHECK: %[[COUNT:.*]] = math.ctpop %[[AVAL]] : i3243 ! CHECK: %[[C1:.*]] = arith.constant 1 : i3244 ! CHECK: %[[RESULT:.*]] = arith.andi %[[COUNT]], %[[C1]] : i3245 ! CHECK: fir.store %[[RESULT]] to %[[BREF]] : !fir.ref<i32>46end subroutine poppar4_test47 48! CHECK-LABEL: poppar8_test49! CHECK-SAME: %[[AREF:.*]]: !fir.ref<i64>{{.*}}, %[[BREF:.*]]: !fir.ref<i32>{{.*}}50subroutine poppar8_test(a, b)51 integer(8) :: a52 integer :: b53 54 ! CHECK: %[[AVAL:.*]] = fir.load %[[AREF]] : !fir.ref<i64>55 b = poppar(a)56 ! CHECK: %[[COUNT:.*]] = math.ctpop %[[AVAL]] : i6457 ! CHECK: %[[CONV:.*]] = fir.convert %[[COUNT]] : (i64) -> i3258 ! CHECK: %[[C1:.*]] = arith.constant 1 : i3259 ! CHECK: %[[RESULT:.*]] = arith.andi %[[CONV]], %[[C1]] : i3260 ! CHECK: fir.store %[[RESULT]] to %[[BREF]] : !fir.ref<i32>61end subroutine poppar8_test62 63! CHECK-LABEL: poppar16_test64! CHECK-SAME: %[[AREF:.*]]: !fir.ref<i128>{{.*}}, %[[BREF:.*]]: !fir.ref<i32>{{.*}}65subroutine poppar16_test(a, b)66 integer(16) :: a67 integer :: b68 69 ! CHECK: %[[AVAL:.*]] = fir.load %[[AREF]] : !fir.ref<i128>70 b = poppar(a)71 ! CHECK: %[[COUNT:.*]] = math.ctpop %[[AVAL]] : i12872 ! CHECK: %[[CONV:.*]] = fir.convert %[[COUNT]] : (i128) -> i3273 ! CHECK: %[[C1:.*]] = arith.constant 1 : i3274 ! CHECK: %[[RESULT:.*]] = arith.andi %[[CONV]], %[[C1]] : i3275 ! CHECK: fir.store %[[RESULT]] to %[[BREF]] : !fir.ref<i32>76end subroutine poppar16_test77