llvm.org GIT mirror llvm / bc54ee9
- Change __builtin_ia32_palignr intrinsic type to match the pattern in clang. - Add patterns to match the following MMX builtins: * __builtin_ia32_vec_init_v8qi * __builtin_ia32_vec_init_v4hi * __builtin_ia32_vec_init_v2si * __builtin_ia32_vec_ext_v2si These builtins do not correspond to a single MMX instruction. They will have to be lowered -- most likely in the back-end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112881 91177308-0d34-0410-b5e6-96231b3b80d8 Bill Wendling 10 years ago
1 changed file(s) with 25 addition(s) and 6 deletion(s). Raw diff Collapse all Expand all
15691569 def int_x86_mmx_movnt_dq : GCCBuiltin<"__builtin_ia32_movntq">,
15701570 Intrinsic<[], [llvm_ptr_ty, llvm_v1i64_ty], []>;
15711571
1572 // def int_x86_mmx_palignr_b : GCCBuiltin<"__builtin_ia32_palignr">,
1573 // Intrinsic<[llvm_v1i64_ty], [llvm_v1i64_ty,
1574 // llvm_v1i64_ty, llvm_i8_ty], [IntrNoMem]>;
1572 // def int_x86_mmx_palignr_b : GCCBuiltin<"__builtin_ia32_palignr">,
1573 // Intrinsic<[llvm_v8i8_ty], [llvm_8i8_ty,
1574 // llvm_v8i8_ty, llvm_i8_ty], [IntrNoMem]>;
15751575
15761576 def int_x86_mmx_pextr_w :
15771577 Intrinsic<[llvm_i32_ty], [llvm_v1i64_ty, llvm_i32_ty],
15821582 llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>;
15831583
15841584 def int_x86_mmx_cvtsi32_si64 :
1585 Intrinsic<[llvm_v1i64_ty], [llvm_i32_ty], [IntrNoMem]>;
1585 Intrinsic<[llvm_v1i64_ty], [llvm_i32_ty], [IntrNoMem]>;
15861586 def int_x86_mmx_cvtsi64_si32 :
1587 Intrinsic<[llvm_i32_ty], [llvm_v1i64_ty], [IntrNoMem]>;
1588 }
1587 Intrinsic<[llvm_i32_ty], [llvm_v1i64_ty], [IntrNoMem]>;
1588
1589 def int_x86_mmx_vec_init_b : GCCBuiltin<"__builtin_ia32_vec_init_v8qi">,
1590 Intrinsic<[llvm_v8i8_ty],
1591 [llvm_i8_ty, llvm_i8_ty, llvm_i8_ty, llvm_i8_ty,
1592 llvm_i8_ty, llvm_i8_ty, llvm_i8_ty, llvm_i8_ty],
1593 [IntrNoMem]>;
1594 def int_x86_mmx_vec_init_w : GCCBuiltin<"__builtin_ia32_vec_init_v4hi">,
1595 Intrinsic<[llvm_v4i16_ty],
1596 [llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty],
1597 [IntrNoMem]>;
1598 def int_x86_mmx_vec_init_d : GCCBuiltin<"__builtin_ia32_vec_init_v2si">,
1599 Intrinsic<[llvm_v2i32_ty],
1600 [llvm_i32_ty, llvm_i32_ty],
1601 [IntrNoMem]>;
1602
1603 def int_x86_mmx_vec_ext_d : GCCBuiltin<"__builtin_ia32_vec_ext_v2si">,
1604 Intrinsic<[llvm_v2i32_ty],
1605 [llvm_v2i32_ty, llvm_i32_ty],
1606 [IntrNoMem]>;
1607 }