Bindings for instruction calling conventions.
[oota-llvm.git] / test / Bindings / Ocaml / vmcore.ml
index 2597c6fa3a62af32e75862f2b130e64eea127ecc..457e7664efae35225723192debe0a4213721e056 100644 (file)
@@ -36,6 +36,25 @@ let filename = Sys.argv.(1)
 let m = create_module filename
 
 
+(*===-- Target ------------------------------------------------------------===*)
+
+let test_target () =
+  begin group "triple";
+    (* RUN: grep "i686-apple-darwin8" < %t.ll
+     *)
+    let trip = "i686-apple-darwin8" in
+    set_target_triple trip m;
+    insist (trip = target_triple m)
+  end;
+  
+  begin group "layout";
+    (* RUN: grep "bogus" < %t.ll
+     *)
+    let layout = "bogus" in
+    set_data_layout layout m;
+    insist (layout = data_layout m)
+  end
+
 (*===-- Types -------------------------------------------------------------===*)
 
 let test_types () =
@@ -749,14 +768,19 @@ let test_builder () =
   end;
   
   group "miscellaneous"; begin
-    (* RUN: grep {Inst45.*call.*P2.*P1} < %t.ll
+    (* RUN: grep {CallInst.*call.*P2.*P1} < %t.ll
+     * RUN: grep {CallInst.*cc63} < %t.ll
      * RUN: grep {Inst47.*select.*Inst46.*P1.*P2} < %t.ll
      * RUN: grep {Inst48.*va_arg.*null.*i32} < %t.ll
      * RUN: grep {Inst49.*extractelement.*Vec1.*P2} < %t.ll
      * RUN: grep {Inst50.*insertelement.*Vec1.*P1.*P2} < %t.ll
      * RUN: grep {Inst51.*shufflevector.*Vec1.*Vec2.*1.*1.*0.*0} < %t.ll
      *)
-         ignore (build_call fn [| p2; p1 |] "Inst45" atentry);
+    let ci = build_call fn [| p2; p1 |] "CallInst" atentry in
+    insist (CallConv.c = instruction_call_conv ci);
+    set_instruction_call_conv 63 ci;
+    insist (63 = instruction_call_conv ci);
+    
     let inst46 = build_icmp Icmp.Eq p1 p2 "Inst46" atentry in
          ignore (build_select inst46 p1 p2 "Inst47" atentry);
          ignore (build_va_arg
@@ -823,6 +847,7 @@ let test_writer () =
 (*===-- Driver ------------------------------------------------------------===*)
 
 let _ =
+  suite "target"           test_target;
   suite "types"            test_types;
   suite "constants"        test_constants;
   suite "global values"    test_global_values;