Files
sdk/tests/compiler/dart2js/optimization/data/arithmetic_simplification.dart
T
Joshua Litt b69e1fd96f [dart2js] Manually opt out tests/compilers/dart2js*.
Change-Id: I6a8a20e9ae58a56bd7e99a714ab94e73cae2f315
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/140252
Commit-Queue: Joshua Litt <joshualitt@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2020-03-21 16:12:36 +00:00

79 lines
1.6 KiB
Dart

// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// @dart = 2.7
// Test constant folding on numbers.
@pragma('dart2js:assumeDynamic')
@pragma('dart2js:noInline')
int confuse(int x) => x;
/*member: intPlusZero:Specializer=[Add,BitAnd]*/
@pragma('dart2js:noInline')
intPlusZero() {
int x = confuse(0);
return (x & 1) + 0;
}
/*member: zeroPlusInt:Specializer=[Add,BitAnd]*/
@pragma('dart2js:noInline')
zeroPlusInt() {
int x = confuse(0);
return 0 + (x & 1);
}
/*member: numPlusZero:Specializer=[Add]*/
@pragma('dart2js:noInline')
numPlusZero() {
num x = confuse(0);
return x + 0;
}
/*member: zeroPlusNum:Specializer=[Add]*/
@pragma('dart2js:noInline')
zeroPlusNum() {
num x = confuse(0);
return 0 + x;
}
/*member: intTimesOne:Specializer=[BitAnd,Multiply]*/
@pragma('dart2js:noInline')
intTimesOne() {
int x = confuse(0);
return (x & 1) * 1;
}
/*member: oneTimesInt:Specializer=[BitAnd,Multiply]*/
@pragma('dart2js:noInline')
oneTimesInt() {
int x = confuse(0);
return 1 * (x & 1);
}
/*member: numTimesOne:Specializer=[Multiply]*/
@pragma('dart2js:noInline')
numTimesOne() {
num x = confuse(0);
return x * 1;
}
/*member: oneTimesNum:Specializer=[Multiply]*/
@pragma('dart2js:noInline')
oneTimesNum() {
num x = confuse(0);
return 1 * x;
}
main() {
intPlusZero();
zeroPlusInt();
numPlusZero();
zeroPlusNum();
intTimesOne();
oneTimesInt();
numTimesOne();
oneTimesNum();
}