Commit dff32a2cd7

Veikka Tuominen <git@vexu.eu>
2022-12-07 13:48:10
Sema: resolve lazy values in analyzeMinMax
Closes #13797
1 parent ddce760
Changed files (2)
src
test
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,
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));
+}