mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-26 05:32:25 +00:00
[OCaml] (PR16318) Add missing argument to Llvm.const_intcast
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194065 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
150c95eab5
commit
c8ac229cc8
@ -529,7 +529,8 @@ external const_trunc_or_bitcast : llvalue -> lltype -> llvalue
|
||||
= "LLVMConstTruncOrBitCast"
|
||||
external const_pointercast : llvalue -> lltype -> llvalue
|
||||
= "LLVMConstPointerCast"
|
||||
external const_intcast : llvalue -> lltype -> llvalue = "LLVMConstIntCast"
|
||||
external const_intcast : llvalue -> lltype -> is_signed:bool -> llvalue
|
||||
= "llvm_const_intcast"
|
||||
external const_fpcast : llvalue -> lltype -> llvalue = "LLVMConstFPCast"
|
||||
external const_select : llvalue -> llvalue -> llvalue -> llvalue
|
||||
= "LLVMConstSelect"
|
||||
|
@ -1118,10 +1118,12 @@ val const_trunc_or_bitcast : llvalue -> lltype -> llvalue
|
||||
See the method [llvm::ConstantExpr::getPointerCast]. *)
|
||||
val const_pointercast : llvalue -> lltype -> llvalue
|
||||
|
||||
(** [const_intcast c ty] returns a constant zext, bitcast, or trunc for integer
|
||||
-> integer casts of constant [c] to type [ty].
|
||||
See the method [llvm::ConstantExpr::getIntCast]. *)
|
||||
val const_intcast : llvalue -> lltype -> llvalue
|
||||
(** [const_intcast c ty ~is_signed] returns a constant sext/zext, bitcast,
|
||||
or trunc for integer -> integer casts of constant [c] to type [ty].
|
||||
When converting a narrower value to a wider one, whether sext or zext
|
||||
will be used is controlled by [is_signed].
|
||||
See the method [llvm::ConstantExpr::getIntegerCast]. *)
|
||||
val const_intcast : llvalue -> lltype -> is_signed:bool -> llvalue
|
||||
|
||||
(** [const_fpcast c ty] returns a constant fpext, bitcast, or fptrunc for fp ->
|
||||
fp casts of constant [c] to type [ty].
|
||||
|
@ -771,6 +771,12 @@ CAMLprim LLVMValueRef llvm_const_in_bounds_gep(LLVMValueRef ConstantVal,
|
||||
Wosize_val(Indices));
|
||||
}
|
||||
|
||||
/* llvalue -> lltype -> is_signed:bool -> llvalue */
|
||||
CAMLprim LLVMValueRef llvm_const_intcast(LLVMValueRef CV, LLVMTypeRef T,
|
||||
value IsSigned) {
|
||||
return LLVMConstIntCast(CV, T, Bool_val(IsSigned));
|
||||
}
|
||||
|
||||
/* llvalue -> int array -> llvalue */
|
||||
CAMLprim LLVMValueRef llvm_const_extractvalue(LLVMValueRef Aggregate,
|
||||
value Indices) {
|
||||
|
@ -286,6 +286,7 @@ let test_constants () =
|
||||
* CHECK: const_ptrtoint{{.*}}ptrtoint
|
||||
* CHECK: const_inttoptr{{.*}}inttoptr
|
||||
* CHECK: const_bitcast{{.*}}bitcast
|
||||
* CHECK: const_intcast{{.*}}zext
|
||||
*)
|
||||
let i128_type = integer_type context 128 in
|
||||
ignore (define_global "const_trunc" (const_trunc (const_add foldbomb five)
|
||||
@ -305,6 +306,8 @@ let test_constants () =
|
||||
ignore (define_global "const_inttoptr" (const_inttoptr (const_add foldbomb five)
|
||||
void_ptr) m);
|
||||
ignore (define_global "const_bitcast" (const_bitcast ffoldbomb i64_type) m);
|
||||
ignore (define_global "const_intcast"
|
||||
(const_intcast foldbomb i128_type ~is_signed:false) m);
|
||||
|
||||
group "misc constants";
|
||||
(* CHECK: const_size_of{{.*}}getelementptr{{.*}}null
|
||||
|
Loading…
Reference in New Issue
Block a user