MCPcopy Create free account
hub / github.com/clMathLibraries/clBLAS / handleMakeVector

Method handleMakeVector

src/library/blas/gens/kprintf.cpp:445–504  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

443}
444
445void kprintf::handleMakeVector(char **_src, char **_dst, int div)
446{
447 int numCharsWritten = 0;
448 char id[256];
449 char * ptr;
450 char *src = *_src;
451 char *dst = *_dst;
452
453 ptr = mystrtok( src, "()");
454 ptr = mystrtok( NULL, "()"); // Get ID
455 strcpy( id, ptr);
456 *_src = ptr + strlen(ptr) + 1;
457
458
459 if ( div == 0 ) // Scalar Case
460 {
461 numCharsWritten = sprintf(dst,"(%s)(", BASE);
462 dst += numCharsWritten;
463
464 if ( s_or_v == VECTOR)
465 {
466 if ( strcmp( BASE,"float") == 0 || strcmp( BASE,"float2") == 0)
467 {
468 numCharsWritten = sprintf(dst," %s%c,", id, 'f');
469 }
470 else
471 {
472 numCharsWritten = sprintf(dst," %s,", id);
473 }
474 dst += numCharsWritten;
475 }
476
477 if ( strcmp( BASE,"float") == 0 || strcmp( BASE,"float2") == 0 )
478 {
479 numCharsWritten = sprintf(dst," %s%c)", id,'f');
480 }
481 else
482 {
483 numCharsWritten = sprintf(dst," %s)", id);
484
485 }
486 dst += numCharsWritten;
487 *_dst = dst;
488 }
489 else
490 {
491 numCharsWritten = sprintf(dst,"(%s)(", (div == 1)? DERIVED : (div == 2)? HALFWORD : (div == 4)? QUARTERWORD: HALFQUARTERWORD);
492 dst += numCharsWritten;
493
494 for( int i = 1 ; i < (vectorWidth/ div); i++)
495 {
496 numCharsWritten = sprintf(dst," %s,", id);
497 dst += numCharsWritten;
498 }
499
500 numCharsWritten = sprintf(dst," %s)", id);
501 dst += numCharsWritten;
502 *_dst = dst;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected