aboutsummaryrefslogtreecommitdiff
path: root/test
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
parent175463d75dbde1e8e4c5a55159ab4e9446fd211c (diff)
downloadzig-7bb6393b593dcf4c8b929fc6b04b576e55f34607.tar.gz
zig-7bb6393b593dcf4c8b929fc6b04b576e55f34607.zip
stage1: implement @prefetch() builtin
Diffstat (limited to 'test')
-rw-r--r--test/behavior.zig1
-rw-r--r--test/behavior/prefetch.zig27
2 files changed, 28 insertions, 0 deletions
diff --git a/test/behavior.zig b/test/behavior.zig
index 6c793fad53..4a28e1b07a 100644
--- a/test/behavior.zig
+++ b/test/behavior.zig
@@ -169,6 +169,7 @@ test {
_ = @import("behavior/optional_stage1.zig");
_ = @import("behavior/pointers_stage1.zig");
_ = @import("behavior/popcount_stage1.zig");
+ _ = @import("behavior/prefetch.zig");
_ = @import("behavior/ptrcast_stage1.zig");
_ = @import("behavior/reflection.zig");
_ = @import("behavior/saturating_arithmetic_stage1.zig");
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 });
+}