Skip to content

Commit e9cfb7f

Browse files
authored
Merge pull request #4491 from martin-frbg/fixup-4488
fix sbgemm bfloat16 conversion errors introduced in PR 4488
2 parents 22b487b + e9f4801 commit e9cfb7f

File tree

1 file changed

+6
-12
lines changed

1 file changed

+6
-12
lines changed

test/compare_sgemm_sbgemm.c

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -81,16 +81,6 @@ float16to32 (bfloat16_bits f16)
8181
return f32.v;
8282
}
8383

84-
float
85-
float32to16 (float32_bits f32)
86-
{
87-
bfloat16_bits f16;
88-
f16.bits.s = f32.bits.s;
89-
f16.bits.e = f32.bits.e;
90-
f16.bits.m = (uint32_t) f32.bits.m >> 16;
91-
return f32.v;
92-
}
93-
9484
int
9585
main (int argc, char *argv[])
9686
{
@@ -110,6 +100,8 @@ main (int argc, char *argv[])
110100
float C[m * n];
111101
bfloat16_bits AA[m * k], BB[k * n];
112102
float DD[m * n], CC[m * n];
103+
bfloat16 atmp,btmp;
104+
blasint one=1;
113105

114106
for (j = 0; j < m; j++)
115107
{
@@ -118,8 +110,10 @@ main (int argc, char *argv[])
118110
A[j * k + i] = ((FLOAT) rand () / (FLOAT) RAND_MAX) + 0.5;
119111
B[j * k + i] = ((FLOAT) rand () / (FLOAT) RAND_MAX) + 0.5;
120112
C[j * k + i] = 0;
121-
AA[j * k + i].v = float32to16( A[j * k + i] );
122-
BB[j * k + i].v = float32to16( B[j * k + i] );
113+
sbstobf16_(&one, &A[j*k+i], &one, &atmp, &one);
114+
sbstobf16_(&one, &B[j*k+i], &one, &btmp, &one);
115+
AA[j * k + i].v = atmp;
116+
BB[j * k + i].v = btmp;
123117
CC[j * k + i] = 0;
124118
DD[j * k + i] = 0;
125119
}

0 commit comments

Comments
 (0)