brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.3 KiB · 20f241c Raw
81 lines · plain
1! RUN: bbc -emit-fir -hlfir=false %s -o - | FileCheck %s2 3! CHECK-LABEL: func.func @_QPselected_int_kind_test1(4! CHECK-SAME:                                        %[[VAL_0:.*]]: !fir.ref<i8> {fir.bindc_name = "a"}) {5! CHECK:         %[[VAL_1:.*]] = fir.alloca i8 {bindc_name = "res", uniq_name = "_QFselected_int_kind_test1Eres"}6! CHECK:         %[[VAL_4:.*]] = arith.constant 1 : i327! CHECK:         %[[VAL_6:.*]] = fir.convert %[[VAL_0]] : (!fir.ref<i8>) -> !fir.llvm_ptr<i8>8! CHECK:         %[[VAL_7:.*]] = fir.call @_FortranASelectedIntKind(%{{.*}}, %{{.*}}, %[[VAL_6]], %[[VAL_4]]) {{.*}}: (!fir.ref<i8>, i32, !fir.llvm_ptr<i8>, i32) -> i329! CHECK:         %[[VAL_8:.*]] = fir.convert %[[VAL_7]] : (i32) -> i810! CHECK:         fir.store %[[VAL_8]] to %[[VAL_1]] : !fir.ref<i8>11! CHECK:         return12! CHECK:       }13 14subroutine selected_int_kind_test1(a)15  integer(1) :: a, res16  res = selected_int_kind(a)17end18 19! CHECK-LABEL: func.func @_QPselected_int_kind_test2(20! CHECK-SAME:                                        %[[VAL_0:.*]]: !fir.ref<i16> {fir.bindc_name = "a"}) {21! CHECK:         %[[VAL_1:.*]] = fir.alloca i16 {bindc_name = "res", uniq_name = "_QFselected_int_kind_test2Eres"}22! CHECK:         %[[VAL_4:.*]] = arith.constant 2 : i3223! CHECK:         %[[VAL_6:.*]] = fir.convert %[[VAL_0]] : (!fir.ref<i16>) -> !fir.llvm_ptr<i8>24! CHECK:         %[[VAL_7:.*]] = fir.call @_FortranASelectedIntKind(%{{.*}}, %{{.*}}, %[[VAL_6]], %[[VAL_4]]) {{.*}}: (!fir.ref<i8>, i32, !fir.llvm_ptr<i8>, i32) -> i3225! CHECK:         %[[VAL_8:.*]] = fir.convert %[[VAL_7]] : (i32) -> i1626! CHECK:         fir.store %[[VAL_8]] to %[[VAL_1]] : !fir.ref<i16>27! CHECK:         return28! CHECK:       }29 30subroutine selected_int_kind_test2(a)31  integer(2) :: a, res32  res = selected_int_kind(a)33end34 35! CHECK-LABEL: func.func @_QPselected_int_kind_test4(36! CHECK-SAME:                                        %[[VAL_0:.*]]: !fir.ref<i32> {fir.bindc_name = "a"}) {37! CHECK:         %[[VAL_1:.*]] = fir.alloca i32 {bindc_name = "res", uniq_name = "_QFselected_int_kind_test4Eres"}38! CHECK:         %[[VAL_4:.*]] = arith.constant 4 : i3239! CHECK:         %[[VAL_6:.*]] = fir.convert %[[VAL_0]] : (!fir.ref<i32>) -> !fir.llvm_ptr<i8>40! CHECK:         %[[VAL_7:.*]] = fir.call @_FortranASelectedIntKind(%{{.*}}, %{{.*}}, %[[VAL_6]], %[[VAL_4]]) {{.*}}: (!fir.ref<i8>, i32, !fir.llvm_ptr<i8>, i32) -> i3241! CHECK:         fir.store %[[VAL_7]] to %[[VAL_1]] : !fir.ref<i32>42! CHECK:         return43! CHECK:       }44 45subroutine selected_int_kind_test4(a)46  integer(4) :: a, res47  res = selected_int_kind(a)48end49 50! CHECK-LABEL: func.func @_QPselected_int_kind_test8(51! CHECK-SAME:                                        %[[VAL_0:.*]]: !fir.ref<i64> {fir.bindc_name = "a"}) {52! CHECK:         %[[VAL_1:.*]] = fir.alloca i64 {bindc_name = "res", uniq_name = "_QFselected_int_kind_test8Eres"}53! CHECK:         %[[VAL_4:.*]] = arith.constant 8 : i3254! CHECK:         %[[VAL_6:.*]] = fir.convert %[[VAL_0]] : (!fir.ref<i64>) -> !fir.llvm_ptr<i8>55! CHECK:         %[[VAL_7:.*]] = fir.call @_FortranASelectedIntKind(%{{.*}}, %{{.*}}, %[[VAL_6]], %[[VAL_4]]) {{.*}}: (!fir.ref<i8>, i32, !fir.llvm_ptr<i8>, i32) -> i3256! CHECK:         %[[VAL_8:.*]] = fir.convert %[[VAL_7]] : (i32) -> i6457! CHECK:         fir.store %[[VAL_8]] to %[[VAL_1]] : !fir.ref<i64>58! CHECK:         return59! CHECK:       }60 61subroutine selected_int_kind_test8(a)62  integer(8) :: a, res63  res = selected_int_kind(a)64end65 66! CHECK-LABEL: func.func @_QPselected_int_kind_test16(67! CHECK-SAME:                                         %[[VAL_0:.*]]: !fir.ref<i128> {fir.bindc_name = "a"}) {68! CHECK:         %[[VAL_1:.*]] = fir.alloca i128 {bindc_name = "res", uniq_name = "_QFselected_int_kind_test16Eres"}69! CHECK:         %[[VAL_4:.*]] = arith.constant 16 : i3270! CHECK:         %[[VAL_6:.*]] = fir.convert %[[VAL_0]] : (!fir.ref<i128>) -> !fir.llvm_ptr<i8>71! CHECK:         %[[VAL_7:.*]] = fir.call @_FortranASelectedIntKind(%{{.*}}, %{{.*}}, %[[VAL_6]], %[[VAL_4]]) {{.*}}: (!fir.ref<i8>, i32, !fir.llvm_ptr<i8>, i32) -> i3272! CHECK:         %[[VAL_8:.*]] = fir.convert %[[VAL_7]] : (i32) -> i12873! CHECK:         fir.store %[[VAL_8]] to %[[VAL_1]] : !fir.ref<i128>74! CHECK:         return75! CHECK:       }76 77subroutine selected_int_kind_test16(a)78  integer(16) :: a, res79  res = selected_int_kind(a)80end81