human
Solve the following python programming problem given the following code:
def call_xxgemm(context, builder, x_type, x_shapes, x_data, y_type, y_shapes, y_data, out_type, out_shapes, out_data) : 
    '
    Call the BLAS matrix * matrix product function for the given arguments.
    ' 
    fnty = ir.FunctionType (ir.IntType (32), [ll_char, ll_char_p, ll_char_p, intp_t, intp_t, intp_t, ll_void_p, ll_void_p, intp_t, ll_void_p, intp_t, ll_void_p, ll_void_p, intp_t]) 
    fn = builder.module.get_or_insert_function (fnty, name = 'numba_xxgemm') 
    (m, k) = x_shapes 
    (_k, n) = y_shapes 
    dtype = x_type.dtype 
    alpha = make_constant_slot (context, builder, dtype, 1.0) 
    beta = make_constant_slot (context, builder, dtype, 0.0) 
    trans = context.insert_const_string (builder.module, 't') 
    notrans = context.insert_const_string (builder.module, 'n') 
    def get_array_param(ty, shapes, data) : 
        return ((notrans if (ty.layout == out_type.layout) else trans), (shapes [1] if (ty.layout == 'C') else shapes [0]), builder.bitcast (data, ll_void_p)) 
(transa, lda, data_a) = get_array_param (y_type, y_shapes, x_shapes) 
    (transb, ldb, data_b) = get_array_param (x_type, x_shapes, x_data) 
    (_, ldc, data_c) = get_array_param (out_type, out_shapes, out_data) 
    kind = get_blas_kind (dtype) 
    kind_val = ir.Constant (ll_char, ord (kind)) 
    res = builder.call (fn, (kind_val, transa, transb, n, m, k, builder.bitcast (alpha, ll_void_p), data_a, lda, data_b, ldb, builder.bitcast (beta, ll_void_p), data_c, ldc)) 
    check_blas_return (context, builder, res) 

    
    

    Fix the buggy line: (transa, lda, data_a) = get_array_param (y_type, y_shapes, x_shapes)
assistant
#Here is Python code to fix the buggy line: (transa, lda, data_a) = get_array_param (y_type, y_shapes, x_shapes)
.

(transa, lda, data_a) = get_array_param (y_type, y_shapes, y_data)