@@ -1041,20 +1041,21 @@ module RangeStage<DeltaSig D, BoundSig<D> Bounds, LangSig<D> LangParam, UtilSig<
1041
1041
)
1042
1042
or
1043
1043
exists (
1044
- SemRemExpr rem , SemZeroBound b1 , SemZeroBound b2 , D:: Delta d_max , D:: Delta d1 , D:: Delta d2 ,
1045
- boolean fbe1 , boolean fbe2 , D:: Delta od1 , D:: Delta od2 , SemReason r1 , SemReason r2
1044
+ SemRemExpr rem , D:: Delta d_max , D:: Delta d1 , D:: Delta d2 , boolean fbe1 , boolean fbe2 ,
1045
+ D:: Delta od1 , D:: Delta od2 , SemReason r1 , SemReason r2
1046
1046
|
1047
1047
rem = e and
1048
+ b instanceof SemZeroBound and
1048
1049
not ( upper = true and semPositive ( rem .getRightOperand ( ) ) ) and
1049
1050
not ( upper = true and semPositive ( rem .getLeftOperand ( ) ) ) and
1050
- boundedRemExpr ( rem , b1 , true , d1 , fbe1 , od1 , r1 ) and
1051
- boundedRemExpr ( rem , b2 , false , d2 , fbe2 , od2 , r2 ) and
1051
+ boundedRemExpr ( rem , true , d1 , fbe1 , od1 , r1 ) and
1052
+ boundedRemExpr ( rem , false , d2 , fbe2 , od2 , r2 ) and
1052
1053
(
1053
1054
if D:: toFloat ( d1 ) .abs ( ) > D:: toFloat ( d2 ) .abs ( )
1054
1055
then (
1055
- b = b1 and d_max = d1 and fromBackEdge = fbe1 and origdelta = od1 and reason = r1
1056
+ d_max = d1 and fromBackEdge = fbe1 and origdelta = od1 and reason = r1
1056
1057
) else (
1057
- b = b2 and d_max = d2 and fromBackEdge = fbe2 and origdelta = od2 and reason = r2
1058
+ d_max = d2 and fromBackEdge = fbe2 and origdelta = od2 and reason = r2
1058
1059
)
1059
1060
)
1060
1061
|
@@ -1103,11 +1104,13 @@ module RangeStage<DeltaSig D, BoundSig<D> Bounds, LangSig<D> LangParam, UtilSig<
1103
1104
)
1104
1105
}
1105
1106
1107
+ pragma [ nomagic]
1106
1108
private predicate boundedRemExpr (
1107
- SemRemExpr rem , SemZeroBound b , boolean upper , D:: Delta delta , boolean fromBackEdge ,
1108
- D :: Delta origdelta , SemReason reason
1109
+ SemRemExpr rem , boolean upper , D:: Delta delta , boolean fromBackEdge , D :: Delta origdelta ,
1110
+ SemReason reason
1109
1111
) {
1110
- bounded ( rem .getRightOperand ( ) , b , delta , upper , fromBackEdge , origdelta , reason )
1112
+ bounded ( rem .getRightOperand ( ) , any ( SemZeroBound zb ) , delta , upper , fromBackEdge , origdelta ,
1113
+ reason )
1111
1114
}
1112
1115
1113
1116
/**
0 commit comments