Advertisement
Guest User

unboxing vector

a guest
Aug 2nd, 2014
269
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
OCaml 0.65 KB | None | 0 0
  1. let unbox_vec llval =
  2.   let ptr = build_in_bounds_gep llval (idx 3) "boxptr" builder in
  3.   let size_ptr = build_in_bounds_gep llval (idx 5) "sizeptr" builder in
  4.   let size = build_load size_ptr "size" builder in
  5.   let el = build_load ptr "el" builder in
  6.   let rhvector_type size = pointer_type (vector_type i64_type size) in
  7.   let vec n = build_bitcast el (rhvector_type n) "vecptr" builder in
  8.   let vecbb n = block_of_value (vec n) in
  9.   let llsize n = const_int i32_type n in
  10.   let switch = build_switch size (vecbb 1) 10 builder in
  11.   let add_case_vec n = add_case switch (llsize n) (vecbb n) in
  12.   add_case_vec 1; add_case_vec 2; add_case_vec 3;
  13.   switch
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement