// Copyright (c) 2016, 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. // // Test that canonicalization inserts constants with correct representation. // VMOptions=--optimization-counter-threshold=10 --optimization-filter=bar --no-background-compilation // @dart = 2.9 import 'dart:typed_data'; toSigned(v, width) { var signMask = 1 << (width - 1); return (v & (signMask - 1)) - (v & signMask); } foo(value) { return value >> 32; } bar(td) { return toSigned(foo(td[0]), 64); } main() { toSigned(1 << 1, 32); toSigned(1 << 32, 32); var l = new Int64List(1); l[0] = 0x78f7f6f5f4f3f2f1; for (var i = 0; i < 20; i++) { bar(l); } }