summaryrefslogtreecommitdiff
path: root/numpy
diff options
context:
space:
mode:
authorSebastian Berg <sebastian@sipsolutions.net>2021-11-05 10:23:42 -0500
committerSebastian Berg <sebastian@sipsolutions.net>2021-11-09 17:19:15 -0600
commita4daaf5a3924248f71caddbcbd3cf28afef802a6 (patch)
tree8055e8274d95945d8b3b92d94b3e9e995ec0e57e /numpy
parenta0d86e298b18f6c1bc13d2ed032ac7fd9d67e592 (diff)
downloadnumpy-a4daaf5a3924248f71caddbcbd3cf28afef802a6.tar.gz
BUG: Fix float16 einsum fastpaths using wrong tempvar
Diffstat (limited to 'numpy')
-rw-r--r--numpy/core/src/multiarray/einsum_sumprod.c.src30
1 files changed, 15 insertions, 15 deletions
diff --git a/numpy/core/src/multiarray/einsum_sumprod.c.src b/numpy/core/src/multiarray/einsum_sumprod.c.src
index 29ceabd71..3114a5896 100644
--- a/numpy/core/src/multiarray/einsum_sumprod.c.src
+++ b/numpy/core/src/multiarray/einsum_sumprod.c.src
@@ -337,13 +337,13 @@ static NPY_GCC_OPT_3 void
/**begin repeat2
* #i = 0, 1, 2, 3#
*/
- const @type@ b@i@ = @from@(data[@i@]);
- const @type@ c@i@ = @from@(data_out[@i@]);
+ const @temptype@ b@i@ = @from@(data[@i@]);
+ const @temptype@ c@i@ = @from@(data_out[@i@]);
/**end repeat2**/
/**begin repeat2
* #i = 0, 1, 2, 3#
*/
- const @type@ abc@i@ = scalar * b@i@ + c@i@;
+ const @temptype@ abc@i@ = scalar * b@i@ + c@i@;
/**end repeat2**/
/**begin repeat2
* #i = 0, 1, 2, 3#
@@ -353,8 +353,8 @@ static NPY_GCC_OPT_3 void
}
#endif // !NPY_DISABLE_OPTIMIZATION
for (; count > 0; --count, ++data, ++data_out) {
- const @type@ b = @from@(*data);
- const @type@ c = @from@(*data_out);
+ const @temptype@ b = @from@(*data);
+ const @temptype@ c = @from@(*data_out);
*data_out = @to@(scalar * b + c);
}
#endif // NPYV check for @type@
@@ -417,14 +417,14 @@ static void
/**begin repeat2
* #i = 0, 1, 2, 3#
*/
- const @type@ a@i@ = @from@(data0[@i@]);
- const @type@ b@i@ = @from@(data1[@i@]);
- const @type@ c@i@ = @from@(data_out[@i@]);
+ const @temptype@ a@i@ = @from@(data0[@i@]);
+ const @temptype@ b@i@ = @from@(data1[@i@]);
+ const @temptype@ c@i@ = @from@(data_out[@i@]);
/**end repeat2**/
/**begin repeat2
* #i = 0, 1, 2, 3#
*/
- const @type@ abc@i@ = a@i@ * b@i@ + c@i@;
+ const @temptype@ abc@i@ = a@i@ * b@i@ + c@i@;
/**end repeat2**/
/**begin repeat2
* #i = 0, 1, 2, 3#
@@ -434,9 +434,9 @@ static void
}
#endif // !NPY_DISABLE_OPTIMIZATION
for (; count > 0; --count, ++data0, ++data1, ++data_out) {
- const @type@ a = @from@(*data0);
- const @type@ b = @from@(*data1);
- const @type@ c = @from@(*data_out);
+ const @temptype@ a = @from@(*data0);
+ const @temptype@ b = @from@(*data1);
+ const @temptype@ c = @from@(*data_out);
*data_out = @to@(a * b + c);
}
#endif // NPYV check for @type@
@@ -521,14 +521,14 @@ static NPY_GCC_OPT_3 void
/**begin repeat2
* #i = 0, 1, 2, 3#
*/
- const @type@ ab@i@ = @from@(data0[@i@]) * @from@(data1[@i@]);
+ const @temptype@ ab@i@ = @from@(data0[@i@]) * @from@(data1[@i@]);
/**end repeat2**/
accum += ab0 + ab1 + ab2 + ab3;
}
#endif // !NPY_DISABLE_OPTIMIZATION
for (; count > 0; --count, ++data0, ++data1) {
- const @type@ a = @from@(*data0);
- const @type@ b = @from@(*data1);
+ const @temptype@ a = @from@(*data0);
+ const @temptype@ b = @from@(*data1);
accum += a * b;
}
#endif // NPYV check for @type@