| 500 | } |
| 501 | |
| 502 | DecimalIR::ValueSplit DecimalIR::ValueSplit::MakeFromInt128(DecimalIR* decimal_ir, |
| 503 | llvm::Value* in) { |
| 504 | auto builder = decimal_ir->ir_builder(); |
| 505 | auto types = decimal_ir->types(); |
| 506 | |
| 507 | auto high = builder->CreateLShr(in, types->i128_constant(64)); |
| 508 | high = builder->CreateTrunc(high, types->i64_type()); |
| 509 | auto low = builder->CreateTrunc(in, types->i64_type()); |
| 510 | return ValueSplit(high, low); |
| 511 | } |
| 512 | |
| 513 | /// Convert IR struct {%i64, %i64} to cpp class ValueSplit |
| 514 | DecimalIR::ValueSplit DecimalIR::ValueSplit::MakeFromStruct(DecimalIR* decimal_ir, |
nothing calls this directly
no test coverage detected