// RUN: mlir-opt --split-input-file --remove-dead-values --mlir-print-op-generic %s | FileCheck %s --check-prefix=GEN // ----- // Private callee: both args become dead after internal DCE; RDV drops callee // args and shrinks the *args* segment on the call-site to zero; sizes kept in // sync. module { func.func private @callee(%x: i32, %y: i32) { %u = arith.addi %x, %x : i32 // %y is dead return } func.func @caller(%a: i32, %b: i32) { // args segment initially has 2 operands. "test.call_with_segments"(%a, %b) { callee = @callee, operandSegmentSizes = array } : (i32, i32) -> () return } } // GEN: "test.call_with_segments"() <{callee = @callee, operandSegmentSizes = array}> : () -> () // ^ args shrank from 2 -> 0