--- openmp/runtime/src/kmp_atomic.cpp.orig	2021-05-07 01:45:33.857000200 +0200
+++ openmp/runtime/src/kmp_atomic.cpp	2021-05-07 01:45:38.757999800 +0200
@@ -646,15 +646,15 @@
 
 static inline kmp_cmplx128_a4_t operator+(kmp_cmplx128_a4_t &lhs,
                                           kmp_cmplx128_a4_t &rhs) {
-  return lhs.q + rhs.q;
+  return (kmp_cmplx128_a4_t)(lhs.q + rhs.q);
 }
 static inline kmp_cmplx128_a4_t operator-(kmp_cmplx128_a4_t &lhs,
                                           kmp_cmplx128_a4_t &rhs) {
-  return lhs.q - rhs.q;
+  return (kmp_cmplx128_a4_t)(lhs.q - rhs.q);
 }
 static inline kmp_cmplx128_a4_t operator*(kmp_cmplx128_a4_t &lhs,
                                           kmp_cmplx128_a4_t &rhs) {
-  return lhs.q * rhs.q;
+  return (kmp_cmplx128_a4_t)(lhs.q * rhs.q);
 }
 static inline kmp_cmplx128_a4_t operator/(kmp_cmplx128_a4_t &lhs,
                                           kmp_cmplx128_a4_t &rhs) {
@@ -663,15 +663,15 @@
 
 static inline kmp_cmplx128_a16_t operator+(kmp_cmplx128_a16_t &lhs,
                                            kmp_cmplx128_a16_t &rhs) {
-  return lhs.q + rhs.q;
+  return (kmp_cmplx128_a16_t)(lhs.q + rhs.q);
 }
 static inline kmp_cmplx128_a16_t operator-(kmp_cmplx128_a16_t &lhs,
                                            kmp_cmplx128_a16_t &rhs) {
-  return lhs.q - rhs.q;
+  return (kmp_cmplx128_a16_t)(lhs.q - rhs.q);
 }
 static inline kmp_cmplx128_a16_t operator*(kmp_cmplx128_a16_t &lhs,
                                            kmp_cmplx128_a16_t &rhs) {
-  return lhs.q * rhs.q;
+  return kmp_cmplx128_a16_t(lhs.q * rhs.q);
 }
 static inline kmp_cmplx128_a16_t operator/(kmp_cmplx128_a16_t &lhs,
                                            kmp_cmplx128_a16_t &rhs) {
