diff --git a/libavutil/bswap.h b/libavutil/bswap.h
index 8ef01b22f061e9960b2a93165822d9e7ac89d5d1..4280f808f52320644e7d19256e1898ad74c2840e 100644
--- a/libavutil/bswap.h
+++ b/libavutil/bswap.h
@@ -111,7 +111,8 @@ static inline uint64_t bswap_64(uint64_t x)
 #else
 
 static av_always_inline uint16_t bswap_16(uint16_t x){
-    return (x>>8) | (x<<8);
+    x= (x>>8) | (x<<8);
+    return x;
 }
 
 #ifdef ARCH_ARM
@@ -140,7 +141,8 @@ static av_always_inline uint32_t bswap_32(uint32_t x){
 #else
 static av_always_inline uint32_t bswap_32(uint32_t x){
     x= ((x<<8)&0xFF00FF00) | ((x>>8)&0x00FF00FF);
-    return (x>>16) | (x<<16);
+    x= (x>>16) | (x<<16);
+    return x;
 }
 #endif