| 911 | } |
| 912 | |
| 913 | static unique_ptr<Instr> parse_fp_ternary(string_view name, token op_token) { |
| 914 | auto fmath = parse_fast_math(op_token); |
| 915 | |
| 916 | FpTernaryOp::Op op; |
| 917 | switch (op_token) { |
| 918 | case FMA: op = FpTernaryOp::FMA; break; |
| 919 | default: |
| 920 | UNREACHABLE(); |
| 921 | } |
| 922 | |
| 923 | auto &aty = parse_type(); |
| 924 | auto &a = parse_operand(aty); |
| 925 | parse_comma(); |
| 926 | auto &bty = parse_type(); |
| 927 | auto &b = parse_operand(bty); |
| 928 | parse_comma(); |
| 929 | auto &cty = parse_type(); |
| 930 | auto &c = parse_operand(cty); |
| 931 | return make_unique<FpTernaryOp>(aty, string(name), a, b, c, op, fmath, |
| 932 | FpRoundingMode(), FpExceptionMode()); |
| 933 | } |
| 934 | |
| 935 | static unique_ptr<Instr> parse_conversionop(string_view name, token op_token) { |
| 936 | // op ty %op to ty2 |
no test coverage detected