aboutsummaryrefslogtreecommitdiff
path: root/test/behavior
diff options
context:
space:
mode:
authorIsaac Freund <isaac.freund@coil.com>2021-12-07 19:35:46 +0100
committerIsaac Freund <mail@isaacfreund.com>2021-12-11 00:29:31 +0100
commit7bb6393b593dcf4c8b929fc6b04b576e55f34607 (patch)
treeb9deb3d1d49eb0818489b71e566e3a483fa4189d /test/behavior
parent175463d75dbde1e8e4c5a55159ab4e9446fd211c (diff)
downloadzig-7bb6393b593dcf4c8b929fc6b04b576e55f34607.tar.gz
zig-7bb6393b593dcf4c8b929fc6b04b576e55f34607.zip
stage1: implement @prefetch() builtin
Diffstat (limited to 'test/behavior')
-rw-r--r--test/behavior/prefetch.zig27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/behavior/prefetch.zig b/test/behavior/prefetch.zig
new file mode 100644
index 0000000000..98dc72a976
--- /dev/null
+++ b/test/behavior/prefetch.zig
@@ -0,0 +1,27 @@
+const std = @import("std");
+
+test "@prefetch()" {
+ var a: u32 = 42;
+
+ @prefetch(&a, .{});
+
+ @prefetch(&a, .{ .rw = .read, .locality = 3, .cache = .data });
+ @prefetch(&a, .{ .rw = .read, .locality = 2, .cache = .data });
+ @prefetch(&a, .{ .rw = .read, .locality = 1, .cache = .data });
+ @prefetch(&a, .{ .rw = .read, .locality = 0, .cache = .data });
+
+ @prefetch(&a, .{ .rw = .write, .locality = 3, .cache = .data });
+ @prefetch(&a, .{ .rw = .write, .locality = 2, .cache = .data });
+ @prefetch(&a, .{ .rw = .write, .locality = 1, .cache = .data });
+ @prefetch(&a, .{ .rw = .write, .locality = 0, .cache = .data });
+
+ @prefetch(&a, .{ .rw = .read, .locality = 3, .cache = .instruction });
+ @prefetch(&a, .{ .rw = .read, .locality = 2, .cache = .instruction });
+ @prefetch(&a, .{ .rw = .read, .locality = 1, .cache = .instruction });
+ @prefetch(&a, .{ .rw = .read, .locality = 0, .cache = .instruction });
+
+ @prefetch(&a, .{ .rw = .write, .locality = 3, .cache = .instruction });
+ @prefetch(&a, .{ .rw = .write, .locality = 2, .cache = .instruction });
+ @prefetch(&a, .{ .rw = .write, .locality = 1, .cache = .instruction });
+ @prefetch(&a, .{ .rw = .write, .locality = 0, .cache = .instruction });
+}