MCPcopy Create free account
hub / github.com/AliveToolkit/alive2 / parse_fp_conversionop

Function parse_fp_conversionop

tools/alive_parser.cpp:954–976  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

952}
953
954static unique_ptr<Instr>
955parse_fp_conversionop(string_view name, token op_token) {
956 // op ty %op to ty2
957 auto &opty = parse_type();
958 auto &val = parse_operand(opty);
959 auto &ty2 = parse_type(/*optional=*/!tokenizer.consumeIf(TO));
960
961 FpConversionOp::Op op;
962 switch (op_token) {
963 case SITOFP: op = FpConversionOp::SIntToFP; break;
964 case UITOFP: op = FpConversionOp::UIntToFP; break;
965 case FPTOSI: op = FpConversionOp::FPToSInt; break;
966 case FPTOUI: op = FpConversionOp::FPToUInt; break;
967 case FPEXT: op = FpConversionOp::FPExt; break;
968 case FPTRUNC: op = FpConversionOp::FPTrunc; break;
969 default:
970 UNREACHABLE();
971 }
972 return make_unique<FpConversionOp>(ty2, string(name), val, op,
973 FpRoundingMode(), FpExceptionMode(),
974 FpConversionOp::None,
975 parse_fast_math(op_token));
976}
977
978static unique_ptr<Instr> parse_select(string_view name) {
979 // select condty %cond, ty %a, ty %b

Callers 1

parse_instrFunction · 0.85

Calls 4

FpRoundingModeClass · 0.85
FpExceptionModeClass · 0.85
parse_fast_mathFunction · 0.85
consumeIfMethod · 0.80

Tested by

no test coverage detected