authorgravatar for topolarity@tapscott.meCody Tapscott <topolarity@tapscott.me> 2022-02-15 10:45:25-07:00
committergravatar for topolarity@tapscott.meCody Tapscott <topolarity@tapscott.me> 2022-02-18 14:28:32-07:00
logdb80dff4e002146063609d20599a7310837074c7
tree4035e1593a535d6d0a1bea5d61b19cfe43a351fd
parentfe1d6c2f56caaf4151d3880f483fe88af9f34b6b

Add backend-specific skips for bitreverse, byteswap tests


4 files changed, 21 insertions(+), 8 deletions(-)

src/codegen/llvm.zig+1-1
......@@ -4390,7 +4390,7 @@ pub const FuncGen = struct {
43904390 var operand_llvm_ty = try self.dg.llvmType(operand_ty);
43914391
43924392 if (bits % 16 == 8) {
4393 // If not an even byte-multiple, we need zero-extend + shift-left 1 byte
4393 // If not an even byte-multiple, we need zero-extend + shift-left 1 byte
43944394 // The truncated result at the end will be the correct bswap
43954395 operand_llvm_ty = self.context.intType(bits + 8);
43964396 const extended = self.builder.buildZExt(operand, operand_llvm_ty, "");
test/behavior.zig+2-2
......@@ -6,6 +6,8 @@ test {
66 _ = @import("behavior/array.zig");
77 _ = @import("behavior/basic.zig");
88 _ = @import("behavior/bit_shifting.zig");
9 _ = @import("behavior/bitreverse.zig");
10 _ = @import("behavior/byteswap.zig");
911 _ = @import("behavior/bool.zig");
1012 _ = @import("behavior/bugs/394.zig");
1113 _ = @import("behavior/bugs/655.zig");
......@@ -105,8 +107,6 @@ test {
105107 if (builtin.zig_backend != .stage2_c) {
106108 // Tests that pass for stage1 and the llvm backend.
107109 _ = @import("behavior/atomics.zig");
108 _ = @import("behavior/bitreverse.zig");
109 _ = @import("behavior/byteswap.zig");
110110 _ = @import("behavior/bugs/9584.zig");
111111 _ = @import("behavior/eval.zig");
112112 _ = @import("behavior/floatop.zig");
test/behavior/bitreverse.zig+14-5
......@@ -3,10 +3,24 @@ const builtin = @import("builtin");
33const expect = std.testing.expect;
44const minInt = std.math.minInt;
55
6test "@bitReverse large exotic integer" {
7 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
8 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
9 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
10 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
11 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
12 // Currently failing on stage1 for big-endian targets
13 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
14
15 try expect(@bitReverse(u95, @as(u95, 0x123456789abcdef111213141)) == 0x4146424447bd9eac8f351624);
16}
17
618test "@bitReverse" {
719 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
820 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
921 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
22 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
23 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1024
1125 comptime try testBitReverse();
1226 try testBitReverse();
......@@ -27,11 +41,6 @@ fn testBitReverse() !void {
2741 try expect(@bitReverse(u96, @as(u96, 0x123456789abcdef111213141)) == 0x828c84888f7b3d591e6a2c48);
2842 try expect(@bitReverse(u128, @as(u128, 0x123456789abcdef11121314151617181)) == 0x818e868a828c84888f7b3d591e6a2c48);
2943
30 if (builtin.zig_backend != .stage1) {
31 // Currently failing on stage1 for big-endian targets
32 try expect(@bitReverse(u95, @as(u95, 0x123456789abcdef111213141)) == 0x4146424447bd9eac8f351624);
33 }
34
3544 // using runtime uints, unsigned
3645 var num0: u0 = 0;
3746 try expect(@bitReverse(u0, num0) == 0);
test/behavior/byteswap.zig+4
......@@ -6,6 +6,8 @@ test "@byteSwap integers" {
66 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
77 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
88 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
9 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
10 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
911
1012 const ByteSwapIntTest = struct {
1113 fn run() !void {
......@@ -56,6 +58,8 @@ test "@byteSwap vectors" {
5658 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
5759 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
5860 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
61 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
62 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
5963
6064 const ByteSwapVectorTest = struct {
6165 fn run() !void {