From 4bcf1b35abea3f3dfc8f2fe462dcf155cf199e55 Mon Sep 17 00:00:00 2001 From: "Field G. Van Zee" Date: Wed, 11 May 2016 16:09:49 -0500 Subject: [PATCH] Fixed bli_get_range_*() bugs in trsm variants. Details: - Fixed incorrect calls to bli_get_range_*() from within trsm blocked variants 1f, 2b, and 2f. The bug somehow went undetected since the big commit (537a1f4), and, strangely, did not manifest via the BLIS testsuite. The bug finally came to our attention when running thei libflame test suite while linking to BLIS. Thanks to Kiran Varaganti for submitting the initial report that led to this bug. --- frame/3/trsm/bli_trsm_blk_var1f.c | 2 +- frame/3/trsm/bli_trsm_blk_var2b.c | 4 ++-- frame/3/trsm/bli_trsm_blk_var2f.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/frame/3/trsm/bli_trsm_blk_var1f.c b/frame/3/trsm/bli_trsm_blk_var1f.c index 75624c26f..d6978e9de 100644 --- a/frame/3/trsm/bli_trsm_blk_var1f.c +++ b/frame/3/trsm/bli_trsm_blk_var1f.c @@ -74,7 +74,7 @@ void bli_trsm_blk_var1f( obj_t* a, trsm_thread_sub_opackm( thread ) ); dim_t my_start, my_end; - bli_get_range_b2t( thread, a, + bli_get_range_t2b( thread, a, ( bli_obj_root_is_triangular( *a ) ? bli_cntx_get_bmult( BLIS_MR, cntx ) : bli_cntx_get_bmult( BLIS_NR, cntx ) ), diff --git a/frame/3/trsm/bli_trsm_blk_var2b.c b/frame/3/trsm/bli_trsm_blk_var2b.c index 6c68ec7ba..816c81d0f 100644 --- a/frame/3/trsm/bli_trsm_blk_var2b.c +++ b/frame/3/trsm/bli_trsm_blk_var2b.c @@ -84,8 +84,8 @@ void bli_trsm_blk_var2b( obj_t* a, trsm_thread_sub_opackm( thread ) ); dim_t my_start, my_end; - bli_get_range_b2t( thread, a, - ( bli_obj_root_is_triangular( *a ) ? + bli_get_range_r2l( thread, b, + ( bli_obj_root_is_triangular( *b ) ? bli_cntx_get_bmult( BLIS_MR, cntx ) : bli_cntx_get_bmult( BLIS_NR, cntx ) ), &my_start, &my_end ); diff --git a/frame/3/trsm/bli_trsm_blk_var2f.c b/frame/3/trsm/bli_trsm_blk_var2f.c index 569a521b4..9640a10ef 100644 --- a/frame/3/trsm/bli_trsm_blk_var2f.c +++ b/frame/3/trsm/bli_trsm_blk_var2f.c @@ -84,8 +84,8 @@ void bli_trsm_blk_var2f( obj_t* a, trsm_thread_sub_opackm( thread ) ); dim_t my_start, my_end; - bli_get_range_b2t( thread, a, - ( bli_obj_root_is_triangular( *a ) ? + bli_get_range_l2r( thread, b, + ( bli_obj_root_is_triangular( *b ) ? bli_cntx_get_bmult( BLIS_MR, cntx ) : bli_cntx_get_bmult( BLIS_NR, cntx ) ), &my_start, &my_end );