Temporary disable new intrinsics usage in ieee754 arithmetic

This commit is contained in:
Mikhael Bogdanov
2017-02-02 12:37:59 +01:00
parent 560226cc84
commit aa3f64bc93
9 changed files with 42 additions and 30 deletions
@@ -3652,7 +3652,11 @@ public class ExpressionCodegen extends KtVisitor<StackValue, StackValue> impleme
if (left754Type != null && right754Type != null && left754Type.type.equals(right754Type.type)) {
//check nullability cause there is some optimizations in codegen for non-nullable case
if (left754Type.isNullable || right754Type.isNullable) {
if (state.getLanguageVersionSettings().getLanguageVersion() != LanguageVersion.KOTLIN_1_0 &&
// Using Intrinsics.areEqual is preferable here, but will result in NoSuchMethodError at runtime if the runtime
// of version 1.0 is used and the user forgot to explicitly specify language version / API version.
// This should be enabled when/if we decide to drop support for "-language-version 1.0" / "-api-version 1.0"
//noinspection ConstantConditions, PointlessBooleanExpression
if (false && state.getLanguageVersionSettings().getLanguageVersion() != LanguageVersion.KOTLIN_1_0 &&
state.getLanguageVersionSettings().getApiVersion().compareTo(apiVersion1_1) >= 0) {
return StackValue.operation(Type.BOOLEAN_TYPE, new Function1<InstructionAdapter, Unit>() {
@Override
@@ -24,7 +24,8 @@ fun box(): String {
return "OK"
}
// 1 areEqual \(Ljava/lang/Double;Ljava/lang/Double;\)Z
// 1 areEqual \(DLjava/lang/Double;\)Z
// 1 areEqual \(Ljava/lang/Double;D\)Z
// 3 areEqual
/*
1 areEqual \(Ljava/lang/Double;Ljava/lang/Double;\)Z
1 areEqual \(DLjava/lang/Double;\)Z
1 areEqual \(Ljava/lang/Double;D\)Z
3 areEqual*/
@@ -24,7 +24,8 @@ fun box(): String {
return "OK"
}
// 1 areEqual \(Ljava/lang/Double;Ljava/lang/Double;\)Z
// 1 areEqual \(DLjava/lang/Double;\)Z
// 1 areEqual \(Ljava/lang/Double;D\)Z
// 3 areEqual
/*
1 areEqual \(Ljava/lang/Double;Ljava/lang/Double;\)Z
1 areEqual \(DLjava/lang/Double;\)Z
1 areEqual \(Ljava/lang/Double;D\)Z
3 areEqual*/
@@ -24,7 +24,8 @@ fun box(): String {
return "OK"
}
// 1 areEqual \(Ljava/lang/Float;Ljava/lang/Float;\)Z
// 1 areEqual \(FLjava/lang/Float;\)Z
// 1 areEqual \(Ljava/lang/Float;F\)Z
// 3 areEqual
/*
1 areEqual \(Ljava/lang/Float;Ljava/lang/Float;\)Z
1 areEqual \(FLjava/lang/Float;\)Z
1 areEqual \(Ljava/lang/Float;F\)Z
3 areEqual*/
@@ -24,7 +24,8 @@ fun box(): String {
return "OK"
}
// 1 areEqual \(Ljava/lang/Float;Ljava/lang/Float;\)Z
// 1 areEqual \(FLjava/lang/Float;\)Z
// 1 areEqual \(Ljava/lang/Float;F\)Z
// 3 areEqual
/*
1 areEqual \(Ljava/lang/Float;Ljava/lang/Float;\)Z
1 areEqual \(FLjava/lang/Float;\)Z
1 areEqual \(Ljava/lang/Float;F\)Z
3 areEqual*/
@@ -17,7 +17,8 @@ fun box(): String {
return "OK"
}
// 1 areEqual \(Ljava/lang/Double;Ljava/lang/Double;\)Z
// 1 areEqual \(DLjava/lang/Double;\)Z
// 1 areEqual \(Ljava/lang/Double;D\)Z
// 3 areEqual
/*
1 areEqual \(Ljava/lang/Double;Ljava/lang/Double;\)Z
1 areEqual \(DLjava/lang/Double;\)Z
1 areEqual \(Ljava/lang/Double;D\)Z
3 areEqual*/
@@ -17,7 +17,8 @@ fun box(): String {
return "OK"
}
// 1 areEqual \(Ljava/lang/Float;Ljava/lang/Float;\)Z
// 1 areEqual \(FLjava/lang/Float;\)Z
// 1 areEqual \(Ljava/lang/Float;F\)Z
// 3 areEqual
/*
1 areEqual \(Ljava/lang/Float;Ljava/lang/Float;\)Z
1 areEqual \(FLjava/lang/Float;\)Z
1 areEqual \(Ljava/lang/Float;F\)Z
3 areEqual*/
+3 -2
View File
@@ -27,5 +27,6 @@ fun box(): String {
return "OK"
}
// 2 areEqual \(DLjava/lang/Double;\)Z
// 2 areEqual
/*
2 areEqual \(DLjava/lang/Double;\)Z
2 areEqual*/
@@ -26,6 +26,7 @@ fun box(): String {
return "OK"
}
// 2 areEqual \(Ljava/lang/Double;Ljava/lang/Double;\)Z
// 2 areEqual \(Ljava/lang/Double;D\)Z
// 4 areEqual
/*
2 areEqual \(Ljava/lang/Double;Ljava/lang/Double;\)Z
2 areEqual \(Ljava/lang/Double;D\)Z
4 areEqual*/