Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Side by Side Diff: tests/lib/typed_data/float32x4_list_test.dart

Issue 19779006: Enables more SIMD tests for ARM. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 // VMOptions=--deoptimization_counter_threshold=1000 4 // VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-thre shold=10
5 5
6 // Library tag to be able to run in html test framework. 6 // Library tag to be able to run in html test framework.
7 library float32x4_list_test; 7 library float32x4_list_test;
8 8
9 import 'package:expect/expect.dart'; 9 import 'package:expect/expect.dart';
10 import 'dart:typed_data'; 10 import 'dart:typed_data';
11 11
12 testLoadStore(array) { 12 testLoadStore(array) {
13 Expect.equals(8, array.length); 13 Expect.equals(8, array.length);
14 Expect.isTrue(array is List<Float32x4>); 14 Expect.isTrue(array is List<Float32x4>);
(...skipping 18 matching lines...) Expand all
33 array[index] = value; 33 array[index] = value;
34 Expect.equals(value.x, array[index].x); 34 Expect.equals(value.x, array[index].x);
35 Expect.equals(value.y, array[index].y); 35 Expect.equals(value.y, array[index].y);
36 Expect.equals(value.z, array[index].z); 36 Expect.equals(value.z, array[index].z);
37 Expect.equals(value.w, array[index].w); 37 Expect.equals(value.w, array[index].w);
38 } 38 }
39 39
40 testLoadStoreDeoptDriver() { 40 testLoadStoreDeoptDriver() {
41 Float32x4List list = new Float32x4List(4); 41 Float32x4List list = new Float32x4List(4);
42 Float32x4 value = new Float32x4(1.0, 2.0, 3.0, 4.0); 42 Float32x4 value = new Float32x4(1.0, 2.0, 3.0, 4.0);
43 for (int i = 0; i < 3000; i++) { 43 for (int i = 0; i < 20; i++) {
44 testLoadStoreDeopt(list, 0, value); 44 testLoadStoreDeopt(list, 0, value);
45 } 45 }
46 try { 46 try {
47 // Invalid index. 47 // Invalid index.
48 testLoadStoreDeopt(list, 5, value); 48 testLoadStoreDeopt(list, 5, value);
49 } catch (_) {} 49 } catch (_) {}
50 for (int i = 0; i < 3000; i++) { 50 for (int i = 0; i < 20; i++) {
51 testLoadStoreDeopt(list, 0, value); 51 testLoadStoreDeopt(list, 0, value);
52 } 52 }
53 try { 53 try {
54 // null list. 54 // null list.
55 testLoadStoreDeopt(null, 0, value); 55 testLoadStoreDeopt(null, 0, value);
56 } catch (_) {} 56 } catch (_) {}
57 for (int i = 0; i < 3000; i++) { 57 for (int i = 0; i < 20; i++) {
58 testLoadStoreDeopt(list, 0, value); 58 testLoadStoreDeopt(list, 0, value);
59 } 59 }
60 try { 60 try {
61 // null value. 61 // null value.
62 testLoadStoreDeopt(list, 0, null); 62 testLoadStoreDeopt(list, 0, null);
63 } catch (_) {} 63 } catch (_) {}
64 for (int i = 0; i < 3000; i++) { 64 for (int i = 0; i < 20; i++) {
65 testLoadStoreDeopt(list, 0, value); 65 testLoadStoreDeopt(list, 0, value);
66 } 66 }
67 try { 67 try {
68 // non-smi index. 68 // non-smi index.
69 testLoadStoreDeopt(list, 3.14159, value); 69 testLoadStoreDeopt(list, 3.14159, value);
70 } catch (_) {} 70 } catch (_) {}
71 for (int i = 0; i < 3000; i++) { 71 for (int i = 0; i < 20; i++) {
72 testLoadStoreDeopt(list, 0, value); 72 testLoadStoreDeopt(list, 0, value);
73 } 73 }
74 try { 74 try {
75 // non-Float32x4 value. 75 // non-Float32x4 value.
76 testLoadStoreDeopt(list, 0, 4.toDouble()); 76 testLoadStoreDeopt(list, 0, 4.toDouble());
77 } catch (_) {} 77 } catch (_) {}
78 for (int i = 0; i < 3000; i++) { 78 for (int i = 0; i < 20; i++) {
79 testLoadStoreDeopt(list, 0, value); 79 testLoadStoreDeopt(list, 0, value);
80 } 80 }
81 try { 81 try {
82 // non-Float32x4List list. 82 // non-Float32x4List list.
83 testLoadStoreDeopt([new Float32x4(2.0, 3.0, 4.0, 5.0)], 0, value); 83 testLoadStoreDeopt([new Float32x4(2.0, 3.0, 4.0, 5.0)], 0, value);
84 } catch (_) {} 84 } catch (_) {}
85 for (int i = 0; i < 3000; i++) { 85 for (int i = 0; i < 20; i++) {
86 testLoadStoreDeopt(list, 0, value); 86 testLoadStoreDeopt(list, 0, value);
87 } 87 }
88 } 88 }
89 89
90 testListZero() { 90 testListZero() {
91 Float32x4List list = new Float32x4List(1); 91 Float32x4List list = new Float32x4List(1);
92 Expect.equals(0.0, list[0].x); 92 Expect.equals(0.0, list[0].x);
93 Expect.equals(0.0, list[0].y); 93 Expect.equals(0.0, list[0].y);
94 Expect.equals(0.0, list[0].z); 94 Expect.equals(0.0, list[0].z);
95 Expect.equals(0.0, list[0].w); 95 Expect.equals(0.0, list[0].w);
96 } 96 }
97 97
98 testView(array) { 98 testView(array) {
99 Expect.equals(8, array.length); 99 Expect.equals(8, array.length);
100 Expect.isTrue(array is List<Float32x4>); 100 Expect.isTrue(array is List<Float32x4>);
101 Expect.equals(0.0, array[0].x); 101 Expect.equals(0.0, array[0].x);
102 Expect.equals(1.0, array[0].y); 102 Expect.equals(1.0, array[0].y);
103 Expect.equals(2.0, array[0].z); 103 Expect.equals(2.0, array[0].z);
104 Expect.equals(3.0, array[0].w); 104 Expect.equals(3.0, array[0].w);
105 Expect.equals(4.0, array[1].x); 105 Expect.equals(4.0, array[1].x);
106 Expect.equals(5.0, array[1].y); 106 Expect.equals(5.0, array[1].y);
107 Expect.equals(6.0, array[1].z); 107 Expect.equals(6.0, array[1].z);
108 Expect.equals(7.0, array[1].w); 108 Expect.equals(7.0, array[1].w);
109 } 109 }
110 110
111 main() { 111 main() {
112 var list; 112 var list;
113 113
114 list = new Float32x4List(8); 114 list = new Float32x4List(8);
115 for (int i = 0; i < 3000; i++) { 115 for (int i = 0; i < 20; i++) {
116 testLoadStore(list); 116 testLoadStore(list);
117 } 117 }
118 118
119 Float32List floatList = new Float32List(32); 119 Float32List floatList = new Float32List(32);
120 for (int i = 0; i < floatList.length; i++) { 120 for (int i = 0; i < floatList.length; i++) {
121 floatList[i] = i.toDouble(); 121 floatList[i] = i.toDouble();
122 } 122 }
123 list = new Float32x4List.view(floatList); 123 list = new Float32x4List.view(floatList);
124 for (int i = 0; i < 3000; i++) { 124 for (int i = 0; i < 20; i++) {
125 testView(list); 125 testView(list);
126 } 126 }
127 for (int i = 0; i < 3000; i++) { 127 for (int i = 0; i < 20; i++) {
128 testLoadStore(list); 128 testLoadStore(list);
129 } 129 }
130 for (int i = 0; i < 3000; i++) { 130 for (int i = 0; i < 20; i++) {
131 testListZero(); 131 testListZero();
132 } 132 }
133 testLoadStoreDeoptDriver(); 133 testLoadStoreDeoptDriver();
134 } 134 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698