commit dff32a2cd73bf222b80ddc48c875fa0745288203 (tree)
parent ddce76059b1631f3eddc3c09615b26698210ba9e
Author: Veikka Tuominen <git@vexu.eu>
Date: Wed, 7 Dec 2022 14:48:10 +0200
Sema: resolve lazy values in analyzeMinMax
Closes #13797
Diffstat:
2 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/src/Sema.zig b/src/Sema.zig
@@ -21011,6 +21011,9 @@ fn analyzeMinMax(
if (rhs_val.isUndef()) return sema.addConstUndef(simd_op.result_ty);
+ try sema.resolveLazyValue(lhs_val);
+ try sema.resolveLazyValue(rhs_val);
+
const opFunc = switch (air_tag) {
.min => Value.numberMin,
.max => Value.numberMax,
diff --git a/test/behavior/maximum_minimum.zig b/test/behavior/maximum_minimum.zig
@@ -95,3 +95,10 @@ test "@min for vectors" {
try S.doTheTest();
comptime try S.doTheTest();
}
+
+test "@min/@max on lazy values" {
+ const A = extern struct { u8_4: [4]u8 };
+ const B = extern struct { u8_16: [16]u8 };
+ const size = @max(@sizeOf(A), @sizeOf(B));
+ try expect(size == @sizeOf(B));
+}