// RUN: cir-opt %s -cir-call-conv-lowering="classification-attr=test_classify" \ // RUN: | FileCheck %s // RUN: cir-opt %s -cir-call-conv-lowering="classification-attr=test_classify" \ // RUN: -cir-to-llvm -o - 2>/dev/null \ // RUN: | mlir-translate -mlir-to-llvmir --allow-unregistered-dialect \ // RUN: | FileCheck %s --check-prefix=LLVM !s8i = !cir.int #extend_signed_arg = { return = { kind = "direct" }, args = [ { kind = "extend", coerced_type = !cir.int, sign_extend = true } ] } module attributes { dlti.dl_spec = #dlti.dl_spec< #dlti.dl_entry: vector<2xi64>>, #dlti.dl_entry: vector<2xi64>>> } { cir.func @takes_s8(%arg0: !s8i) attributes { test_classify = #extend_signed_arg } { cir.return } // CHECK: cir.func{{.*}} @takes_s8(%arg0: !s8i {llvm.signext}) cir.func @caller(%arg0: !s8i) attributes { test_classify = #extend_signed_arg } { cir.call @takes_s8(%arg0) : (!s8i) -> () cir.return } // CHECK: cir.call @takes_s8(%arg0) : (!s8i {llvm.signext}) -> () } // LLVM: define void @takes_s8(i8 signext %{{.+}}) // LLVM: define void @caller(i8 signext %{{.+}})