https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71231
--- Comment #7 from Uroš Bizjak <ubizjak at gmail dot com> ---
The difference in _optimized dumps is:
$ diff -u rnflow.f90.210t.optimized rnflow.f90.210t.optimized_
--- rnflow.f90.210t.optimized 2016-05-23 23:44:55.327695414 +0200
+++ rnflow.f90.210t.optimized_ 2016-05-23 23:41:25.050960650 +0200
@@ -3525,8 +3525,8 @@
<L142>:
_238 = jgrm__lsm.1377_304 * 843314861;
_239 = _238 + 453816693;
- _240 = _239 & 2147483647;
- _241 = (real(kind=4)) _240;
+ _240 = _239;
+ _241 = (real(kind=4)) _239;
_242 = _241 * 4.656612873077392578125e-10;
switch (isns_319) <default: <L142>, case -1: <L139>, case 1: <L140>>
@@ -3543,7 +3543,7 @@
goto <bb 72>;
<bb 72>:
- jgrm = _240;
+ jgrm = _239;
goto <bb 65>;
<bb 73>:
@@ -3631,7 +3631,7 @@
goto <bb 67>;
<bb 80>:
- jgrm = _240;
+ jgrm = _239;
<bb 81>:
__builtin_free (_150);
However, the masking operation should not be removed.