diff --git a/test/stage2/cbe.zig b/test/stage2/cbe.zig index 21270f130b94db95669506c87eab33d68a30b559..12bc21b741cdfbd6038c29c75062ddc1a4d39ae6 100644 --- a/test/stage2/cbe.zig +++ b/test/stage2/cbe.zig @@ -916,6 +916,23 @@ pub fn addCases(ctx: *TestContext) !void { , ""); } + { + var case = ctx.exeFromCompiledC("@rem", linux_x64); + case.addCompareOutput( + \\fn assert(ok: bool) void { + \\ if (!ok) unreachable; + \\} + \\fn rem(lhs: i32, rhs: i32, expected: i32) bool { + \\ return @rem(lhs, rhs) == expected; + \\} + \\pub export fn main() c_int { + \\ assert(rem(-5, 3, -2)); + \\ assert(rem(5, 3, 2)); + \\ return 0; + \\} + , ""); + } + ctx.h("simple header", linux_x64, \\export fn start() void{} , diff --git a/test/stage2/llvm.zig b/test/stage2/llvm.zig index 09649f518c5ae757c206f3b3c03b5ebd432d2973..34f73b01c7a5ee56179e28a0b418203e3c5a07bb 100644 --- a/test/stage2/llvm.zig +++ b/test/stage2/llvm.zig @@ -225,4 +225,21 @@ pub fn addCases(ctx: *TestContext) !void { \\} , ""); } + + { + var case = ctx.exeUsingLlvmBackend("@rem", linux_x64); + case.addCompareOutput( + \\fn assert(ok: bool) void { + \\ if (!ok) unreachable; + \\} + \\fn rem(lhs: i32, rhs: i32, expected: i32) bool { + \\ return @rem(lhs, rhs) == expected; + \\} + \\pub export fn main() c_int { + \\ assert(rem(-5, 3, -2)); + \\ assert(rem(5, 3, 2)); + \\ return 0; + \\} + , ""); + } }