Предположим, у меня есть два указателя значения llvm x и y, где x - двойное, а y - целое число со знаком. И я sh приведу y к типу x. Я должен был бы сделать
y = builder.CreateCast(Instruction::SIToFP, y, x->getType());
Или эквивалентно
y = builder.CreateCast(Instruction::SIToFP, y, Type::getDoubleTy(context));
Почему нужно явно указывать инструкцию? который в данном случае равен Instruction::SIToFP
, вместо того, чтобы просто указывать значение для приведения и тип назначения . Это кажется мне излишним, так как нужно заранее знать типы x и y, чтобы указать правильную инструкцию.