|
2016 | 2016 | (drop (i32.add (i32.ctz (local.get $x)) (i32.eqz (local.get $y))))
|
2017 | 2017 | (drop (i32.add (i32.eqz (local.get $x)) (i32.ctz (local.get $y))))
|
2018 | 2018 | )
|
| 2019 | + ;; CHECK: (func $canonicalize-consts-floats (param $x f32) (param $y f64) |
| 2020 | + ;; CHECK-NEXT: (drop |
| 2021 | + ;; CHECK-NEXT: (f32.add |
| 2022 | + ;; CHECK-NEXT: (local.get $x) |
| 2023 | + ;; CHECK-NEXT: (f32.const -1) |
| 2024 | + ;; CHECK-NEXT: ) |
| 2025 | + ;; CHECK-NEXT: ) |
| 2026 | + ;; CHECK-NEXT: (drop |
| 2027 | + ;; CHECK-NEXT: (f64.add |
| 2028 | + ;; CHECK-NEXT: (local.get $y) |
| 2029 | + ;; CHECK-NEXT: (f64.const -1) |
| 2030 | + ;; CHECK-NEXT: ) |
| 2031 | + ;; CHECK-NEXT: ) |
| 2032 | + ;; CHECK-NEXT: (drop |
| 2033 | + ;; CHECK-NEXT: (f32.mul |
| 2034 | + ;; CHECK-NEXT: (local.get $x) |
| 2035 | + ;; CHECK-NEXT: (f32.const 3.4000000953674316) |
| 2036 | + ;; CHECK-NEXT: ) |
| 2037 | + ;; CHECK-NEXT: ) |
| 2038 | + ;; CHECK-NEXT: (drop |
| 2039 | + ;; CHECK-NEXT: (f64.mul |
| 2040 | + ;; CHECK-NEXT: (local.get $y) |
| 2041 | + ;; CHECK-NEXT: (f64.const 3.4) |
| 2042 | + ;; CHECK-NEXT: ) |
| 2043 | + ;; CHECK-NEXT: ) |
| 2044 | + ;; CHECK-NEXT: (drop |
| 2045 | + ;; CHECK-NEXT: (f32.min |
| 2046 | + ;; CHECK-NEXT: (local.get $x) |
| 2047 | + ;; CHECK-NEXT: (f32.const 3.4000000953674316) |
| 2048 | + ;; CHECK-NEXT: ) |
| 2049 | + ;; CHECK-NEXT: ) |
| 2050 | + ;; CHECK-NEXT: (drop |
| 2051 | + ;; CHECK-NEXT: (f64.min |
| 2052 | + ;; CHECK-NEXT: (local.get $y) |
| 2053 | + ;; CHECK-NEXT: (f64.const 3.4) |
| 2054 | + ;; CHECK-NEXT: ) |
| 2055 | + ;; CHECK-NEXT: ) |
| 2056 | + ;; CHECK-NEXT: (drop |
| 2057 | + ;; CHECK-NEXT: (f32.max |
| 2058 | + ;; CHECK-NEXT: (local.get $x) |
| 2059 | + ;; CHECK-NEXT: (f32.const 3.4000000953674316) |
| 2060 | + ;; CHECK-NEXT: ) |
| 2061 | + ;; CHECK-NEXT: ) |
| 2062 | + ;; CHECK-NEXT: (drop |
| 2063 | + ;; CHECK-NEXT: (f64.max |
| 2064 | + ;; CHECK-NEXT: (local.get $y) |
| 2065 | + ;; CHECK-NEXT: (f64.const 3.4) |
| 2066 | + ;; CHECK-NEXT: ) |
| 2067 | + ;; CHECK-NEXT: ) |
| 2068 | + ;; CHECK-NEXT: (drop |
| 2069 | + ;; CHECK-NEXT: (f32.const nan:0x400000) |
| 2070 | + ;; CHECK-NEXT: ) |
| 2071 | + ;; CHECK-NEXT: (drop |
| 2072 | + ;; CHECK-NEXT: (f64.const nan:0x8000000000000) |
| 2073 | + ;; CHECK-NEXT: ) |
| 2074 | + ;; CHECK-NEXT: (drop |
| 2075 | + ;; CHECK-NEXT: (f32.const nan:0x400000) |
| 2076 | + ;; CHECK-NEXT: ) |
| 2077 | + ;; CHECK-NEXT: (drop |
| 2078 | + ;; CHECK-NEXT: (f64.const nan:0x8000000000000) |
| 2079 | + ;; CHECK-NEXT: ) |
| 2080 | + ;; CHECK-NEXT: (drop |
| 2081 | + ;; CHECK-NEXT: (f32.copysign |
| 2082 | + ;; CHECK-NEXT: (f32.const 1) |
| 2083 | + ;; CHECK-NEXT: (local.get $x) |
| 2084 | + ;; CHECK-NEXT: ) |
| 2085 | + ;; CHECK-NEXT: ) |
| 2086 | + ;; CHECK-NEXT: (drop |
| 2087 | + ;; CHECK-NEXT: (f64.copysign |
| 2088 | + ;; CHECK-NEXT: (f64.const 1) |
| 2089 | + ;; CHECK-NEXT: (local.get $y) |
| 2090 | + ;; CHECK-NEXT: ) |
| 2091 | + ;; CHECK-NEXT: ) |
| 2092 | + ;; CHECK-NEXT: ) |
| 2093 | + (func $canonicalize-consts-floats (param $x f32) (param $y f64) |
| 2094 | + (drop (f32.sub (local.get $x) (f32.const 1.0))) |
| 2095 | + (drop (f64.sub (local.get $y) (f64.const 1.0))) |
| 2096 | + |
| 2097 | + (drop (f32.mul (f32.const 3.4) (local.get $x))) |
| 2098 | + (drop (f64.mul (f64.const 3.4) (local.get $y))) |
| 2099 | + |
| 2100 | + (drop (f32.min (f32.const 3.4) (local.get $x))) |
| 2101 | + (drop (f64.min (f64.const 3.4) (local.get $y))) |
| 2102 | + |
| 2103 | + (drop (f32.max (f32.const 3.4) (local.get $x))) |
| 2104 | + (drop (f64.max (f64.const 3.4) (local.get $y))) |
| 2105 | + |
| 2106 | + (drop (f32.min (f32.const nan) (local.get $x))) |
| 2107 | + (drop (f64.min (f64.const nan) (local.get $y))) |
| 2108 | + |
| 2109 | + (drop (f32.max (f32.const nan) (local.get $x))) |
| 2110 | + (drop (f64.max (f64.const nan) (local.get $y))) |
| 2111 | + |
| 2112 | + ;; skips |
| 2113 | + (drop (f32.copysign (f32.const 1.0) (local.get $x))) |
| 2114 | + (drop (f64.copysign (f64.const 1.0) (local.get $y))) |
| 2115 | + ) |
2019 | 2116 | ;; CHECK: (func $ne0 (result i32)
|
2020 | 2117 | ;; CHECK-NEXT: (if
|
2021 | 2118 | ;; CHECK-NEXT: (call $ne0)
|
@@ -10303,15 +10400,15 @@
|
10303 | 10400 | )
|
10304 | 10401 | ;; CHECK: (func $const-float-zero (param $fx f32) (param $fy f64)
|
10305 | 10402 | ;; CHECK-NEXT: (drop
|
10306 |
| - ;; CHECK-NEXT: (f32.sub |
| 10403 | + ;; CHECK-NEXT: (f32.add |
10307 | 10404 | ;; CHECK-NEXT: (local.get $fx)
|
10308 |
| - ;; CHECK-NEXT: (f32.const 0) |
| 10405 | + ;; CHECK-NEXT: (f32.const -0) |
10309 | 10406 | ;; CHECK-NEXT: )
|
10310 | 10407 | ;; CHECK-NEXT: )
|
10311 | 10408 | ;; CHECK-NEXT: (drop
|
10312 |
| - ;; CHECK-NEXT: (f64.sub |
| 10409 | + ;; CHECK-NEXT: (f64.add |
10313 | 10410 | ;; CHECK-NEXT: (local.get $fy)
|
10314 |
| - ;; CHECK-NEXT: (f64.const 0) |
| 10411 | + ;; CHECK-NEXT: (f64.const -0) |
10315 | 10412 | ;; CHECK-NEXT: )
|
10316 | 10413 | ;; CHECK-NEXT: )
|
10317 | 10414 | ;; CHECK-NEXT: (drop
|
|
10363 | 10460 | ;; CHECK-NEXT: )
|
10364 | 10461 | ;; CHECK-NEXT: )
|
10365 | 10462 | ;; CHECK-NEXT: (drop
|
10366 |
| - ;; CHECK-NEXT: (f32.sub |
| 10463 | + ;; CHECK-NEXT: (f32.add |
10367 | 10464 | ;; CHECK-NEXT: (f32.const -nan:0x34546d)
|
10368 |
| - ;; CHECK-NEXT: (f32.const 0) |
| 10465 | + ;; CHECK-NEXT: (f32.const -0) |
10369 | 10466 | ;; CHECK-NEXT: )
|
10370 | 10467 | ;; CHECK-NEXT: )
|
10371 | 10468 | ;; CHECK-NEXT: )
|
|
0 commit comments