| author | |
| committer | |
| log | dff32a2cd73bf222b80ddc48c875fa0745288203 |
| tree | 5acc46c5c5a98489f7ae2b949177836d789e89c9 |
| parent | ddce76059b1631f3eddc3c09615b26698210ba9e |
Closes #137972 files changed, 10 insertions(+), 0 deletions(-)
src/Sema.zig+3| ... | @@ -21011,6 +21011,9 @@ fn analyzeMinMax( | ... | @@ -21011,6 +21011,9 @@ fn analyzeMinMax( |
| 21011 | 21011 | ||
| 21012 | if (rhs_val.isUndef()) return sema.addConstUndef(simd_op.result_ty); | 21012 | if (rhs_val.isUndef()) return sema.addConstUndef(simd_op.result_ty); |
| 21013 | 21013 | ||
| 21014 | try sema.resolveLazyValue(lhs_val); | ||
| 21015 | try sema.resolveLazyValue(rhs_val); | ||
| 21016 | |||
| 21014 | const opFunc = switch (air_tag) { | 21017 | const opFunc = switch (air_tag) { |
| 21015 | .min => Value.numberMin, | 21018 | .min => Value.numberMin, |
| 21016 | .max => Value.numberMax, | 21019 | .max => Value.numberMax, |
test/behavior/maximum_minimum.zig+7| ... | @@ -95,3 +95,10 @@ test "@min for vectors" { | ... | @@ -95,3 +95,10 @@ test "@min for vectors" { |
| 95 | try S.doTheTest(); | 95 | try S.doTheTest(); |
| 96 | comptime try S.doTheTest(); | 96 | comptime try S.doTheTest(); |
| 97 | } | 97 | } |
| 98 | |||
| 99 | test "@min/@max on lazy values" { | ||
| 100 | const A = extern struct { u8_4: [4]u8 }; | ||
| 101 | const B = extern struct { u8_16: [16]u8 }; | ||
| 102 | const size = @max(@sizeOf(A), @sizeOf(B)); | ||
| 103 | try expect(size == @sizeOf(B)); | ||
| 104 | } |