aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2021-12-10 18:54:56 -0800
committerGitHub <noreply@github.com>2021-12-10 18:54:56 -0800
commit97c0373fa7ee125d2d4e73f9b1dc8ea0e2c2e86a (patch)
treed2aa342a53aef95f88456a63fa7874f3c51ba3b8 /test
parent75f3e7a4a05db7ea805e581f78117a41768945ae (diff)
parent516945d7d9b4d8b969d037076799d4ed29cecdda (diff)
downloadzig-97c0373fa7ee125d2d4e73f9b1dc8ea0e2c2e86a.tar.gz
zig-97c0373fa7ee125d2d4e73f9b1dc8ea0e2c2e86a.zip
Merge pull request #10295 from ifreund/prefetch
Implement @prefetch()
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 });
+}