[flang-commits] [flang] [flang][FIR] handle argument attributes in fir.call (PR #126711)
Slava Zakharin via flang-commits
flang-commits at lists.llvm.org
Tue Feb 11 08:12:16 PST 2025
================
@@ -2853,3 +2853,21 @@ gpu.module @cuda_device_mod {
// CHECK: llvm.func @malloc(i64) -> !llvm.ptr
// CHECK: llvm.call @malloc
// CHECK: lvm.call @free
+
+// -----
+
+func.func private @somefunc(i32, !fir.ref<i64>)
+
+// CHECK-LABEL: @test_call_arg_attrs_direct
+func.func @test_call_arg_attrs_direct(%arg0: i32, %arg1: !fir.ref<i64>) {
+ // CHECK: llvm.call @somefunc(%{{.*}}, %{{.*}}) : (i32, !llvm.ptr {llvm.byval = i64}) -> ()
+ fir.call @somefunc(%arg0, %arg1) : (i32, !fir.ref<i64> {llvm.byval = i64}) -> ()
+ return
+}
+
+// CHECK-LABEL: @test_call_arg_attrs_indirect
+func.func @test_call_arg_attrs_indirect(%arg0: i16, %arg1: (i16)-> i16) -> i16 {
+ // CHECK: llvm.call %arg1(%{{.*}}) : !llvm.ptr, (i16 {llvm.signext}) -> (i16 {llvm.signext})
+ %0 = fir.call %arg1(%arg0) : (i16 {llvm.noundef, llvm.signext}) -> (i16 {llvm.signext})
----------------
vzakhari wrote:
Is it okay that `noundef` is dropped?
https://github.com/llvm/llvm-project/pull/126711
More information about the flang-commits
mailing list