summaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit/harmony/bigint/shl.js
blob: 1b0f309f88b66e3b4ea61bb4fd7cd4b24a7db4fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
// Copyright 2017 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Generated by tools/bigint-tester.py.

// Flags: --harmony-bigint

var data = [{
  a: "-9a6d035348727045f6abf7d59056d30e9ce885e87f5f8438347bfcda0a1f9b",
  b: "-2",
  r: "-269b40d4d21c9c117daafdf56415b4c3a73a217a1fd7e10e0d1eff368287e7"
}, {
  a: "615f9676062ea7a1b89396ce4208712f279475490829",
  b: "ff",
  r: "30afcb3b031753d0dc49cb672104389793ca3aa484148000000000000000000000000000000000000000000000000000000000000000"
}, {
  a: "-9b6131d8b806543fce32b4c2ca2038ffa956929848a61b5eb7f",
  b: "-e7",
  r: "-1"
}, {
  a: "-331d9e",
  b: "0",
  r: "-331d9e"
}, {
  a: "cb79696d3a6f5d5d034e9d2",
  b: "-d33",
  r: "0"
}, {
  a: "ca99",
  b: "10",
  r: "ca990000"
}, {
  a: "6f97833d5",
  b: "0",
  r: "6f97833d5"
}, {
  a: "67d36e7948d18af35f0823c0d58ba47ca0846cdfaa7a7407f09d44747275532681b343",
  b: "f",
  r: "33e9b73ca468c579af8411e06ac5d23e5042366fd53d3a03f84ea23a393aa99340d9a18000"
}, {
  a: "f4896",
  b: "-7",
  r: "1e91"
}, {
  a: "996ce2a9e0f7d65e0523204c9c469bfd14821efe571ac59cdc01",
  b: "1d",
  r: "132d9c553c1efacbc0a464099388d37fa29043dfcae358b39b8020000000"
}, {
  a: "-f8f",
  b: "f1",
  r: "-1f1e000000000000000000000000000000000000000000000000000000000000"
}, {
  a: "-b685bbcd953ba9c5973ae523dc81d7b35e0cf2b9b51026d4ba1ac21bd5c3c18f9c13",
  b: "0",
  r: "-b685bbcd953ba9c5973ae523dc81d7b35e0cf2b9b51026d4ba1ac21bd5c3c18f9c13"
}, {
  a: "e2295b362b7048fb163d1272178ed441517fc689e5ec5ea40f29",
  b: "-30",
  r: "e2295b362b7048fb163d1272178ed441517fc689"
}, {
  a: "-b322e816b014448f44e60b418582390d2a3ad95",
  b: "0",
  r: "-b322e816b014448f44e60b418582390d2a3ad95"
}, {
  a: "4c135e4d7",
  b: "0",
  r: "4c135e4d7"
}, {
  a: "-d5b694",
  b: "f1",
  r: "-1ab6d28000000000000000000000000000000000000000000000000000000000000"
}, {
  a: "-7994be7",
  b: "-d",
  r: "-3ccb"
}, {
  a: "a6443add555ea15af90092e8",
  b: "42",
  r: "29910eb75557a856be4024ba00000000000000000"
}, {
  a: "9385ed",
  b: "e5",
  r: "1270bda000000000000000000000000000000000000000000000000000000000"
}, {
  a: "-531",
  b: "7d",
  r: "-a620000000000000000000000000000000"
}];

var error_count = 0;
for (var i = 0; i < data.length; i++) {
  var d = data[i];
  var a = BigInt.parseInt(d.a, 16);
  var b = BigInt.parseInt(d.b, 16);
  var r = a << b;
  if (d.r !== r.toString(16)) {
    print("Input A:  " + a.toString(16));
    print("Input B:  " + b.toString(16));
    print("Result:   " + r.toString(16));
    print("Expected: " + d.r);
    print("Op: <<");
    error_count++;
  }
}
if (error_count !== 0) {
  print("Finished with " + error_count + " errors.")
  quit(1);
}