@@ -6605,20 +6605,37 @@ static TLS_STORE uint8_t hook_pos_sdot = 0;
6605
6605
6606
6606
float FC_GLOBAL(sdot,SDOT)(blasint* n, float* sx, blasint* incx, float* sy, blasint* incy)
6607
6607
{
6608
- float (*fn) (void* n, void* sx, void* incx, void* sy, void* incy);
6609
- float (*fn_hook) (void* n, void* sx, void* incx, void* sy, void* incy);
6610
6608
float ret;
6611
- if ( current_backend->post_init != 0 ) {
6612
- __flexiblas_backend_init(current_backend);
6613
- current_backend->post_init = 0;
6614
- }
6615
- *(void **) &fn = current_backend->blas.sdot.f77_blas_function;
6616
- *(void **) &fn_hook = __flexiblas_hooks->sdot.f77_hook_function[0];
6617
- hook_pos_sdot = 0;
6618
- if ( fn_hook != NULL) {
6619
- ret = fn_hook((void*) n, (void*) sx, (void*) incx, (void*) sy, (void*) incy);
6609
+ if (current_backend->info.float_function_defect) {
6610
+ double (*fn) (void* n, void* sx, void* incx, void* sy, void* incy);
6611
+ double (*fn_hook) (void* n, void* sx, void* incx, void* sy, void* incy);
6612
+ if ( current_backend->post_init != 0 ) {
6613
+ __flexiblas_backend_init(current_backend);
6614
+ current_backend->post_init = 0;
6615
+ }
6616
+ *(void **) &fn = current_backend->blas.sdot.f77_blas_function;
6617
+ *(void **) &fn_hook = __flexiblas_hooks->sdot.f77_hook_function[0];
6618
+ hook_pos_sdot = 0;
6619
+ if ( fn_hook != NULL) {
6620
+ ret = fn_hook((void*) n, (void*) sx, (void*) incx, (void*) sy, (void*) incy);
6621
+ } else {
6622
+ ret = fn((void*) n, (void*) sx, (void*) incx, (void*) sy, (void*) incy);
6623
+ }
6620
6624
} else {
6621
- ret = fn((void*) n, (void*) sx, (void*) incx, (void*) sy, (void*) incy);
6625
+ float (*fn) (void* n, void* sx, void* incx, void* sy, void* incy);
6626
+ float (*fn_hook) (void* n, void* sx, void* incx, void* sy, void* incy);
6627
+ if ( current_backend->post_init != 0 ) {
6628
+ __flexiblas_backend_init(current_backend);
6629
+ current_backend->post_init = 0;
6630
+ }
6631
+ *(void **) &fn = current_backend->blas.sdot.f77_blas_function;
6632
+ *(void **) &fn_hook = __flexiblas_hooks->sdot.f77_hook_function[0];
6633
+ hook_pos_sdot = 0;
6634
+ if ( fn_hook != NULL) {
6635
+ ret = fn_hook((void*) n, (void*) sx, (void*) incx, (void*) sy, (void*) incy);
6636
+ } else {
6637
+ ret = fn((void*) n, (void*) sx, (void*) incx, (void*) sy, (void*) incy);
6638
+ }
6622
6639
}
6623
6640
return ret;
6624
6641
}
0 commit comments