Skip to content

Commit 5285856

Browse files
committed
Match on Symbol instead of &str in intrinsics handling
1 parent bf85572 commit 5285856

File tree

3 files changed

+69
-70
lines changed

3 files changed

+69
-70
lines changed

src/intrinsics/llvm.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ pub(crate) fn codegen_llvm_intrinsic_call<'tcx>(
2222
};
2323

2424
// Used by `_mm_movemask_epi8` and `_mm256_movemask_epi8`
25-
llvm.x86.sse2.pmovmskb.128 | llvm.x86.avx2.pmovmskb | llvm.x86.sse2.movmsk.pd, (c a) {
25+
"llvm.x86.sse2.pmovmskb.128" | "llvm.x86.avx2.pmovmskb" | "llvm.x86.sse2.movmsk.pd", (c a) {
2626
let (lane_count, lane_ty) = a.layout().ty.simd_size_and_type(fx.tcx);
2727
let lane_ty = fx.clif_type(lane_ty).unwrap();
2828
assert!(lane_count <= 32);
@@ -51,7 +51,7 @@ pub(crate) fn codegen_llvm_intrinsic_call<'tcx>(
5151
let res = CValue::by_val(res, fx.layout_of(fx.tcx.types.i32));
5252
ret.write_cvalue(fx, res);
5353
};
54-
llvm.x86.sse2.cmp.ps | llvm.x86.sse2.cmp.pd, (c x, c y, o kind) {
54+
"llvm.x86.sse2.cmp.ps" | "llvm.x86.sse2.cmp.pd", (c x, c y, o kind) {
5555
let kind_const = crate::constant::mir_operand_get_const_val(fx, kind).expect("llvm.x86.sse2.cmp.* kind not const");
5656
let flt_cc = match kind_const.try_to_bits(Size::from_bytes(1)).unwrap_or_else(|| panic!("kind not scalar: {:?}", kind_const)) {
5757
0 => FloatCC::Equal,
@@ -81,7 +81,7 @@ pub(crate) fn codegen_llvm_intrinsic_call<'tcx>(
8181
bool_to_zero_or_max_uint(fx, res_lane_layout, res_lane)
8282
});
8383
};
84-
llvm.x86.sse2.psrli.d, (c a, o imm8) {
84+
"llvm.x86.sse2.psrli.d", (c a, o imm8) {
8585
let imm8 = crate::constant::mir_operand_get_const_val(fx, imm8).expect("llvm.x86.sse2.psrli.d imm8 not const");
8686
simd_for_each_lane(fx, a, ret, |fx, _lane_layout, res_lane_layout, lane| {
8787
let res_lane = match imm8.try_to_bits(Size::from_bytes(4)).unwrap_or_else(|| panic!("imm8 not scalar: {:?}", imm8)) {
@@ -91,7 +91,7 @@ pub(crate) fn codegen_llvm_intrinsic_call<'tcx>(
9191
CValue::by_val(res_lane, res_lane_layout)
9292
});
9393
};
94-
llvm.x86.sse2.pslli.d, (c a, o imm8) {
94+
"llvm.x86.sse2.pslli.d", (c a, o imm8) {
9595
let imm8 = crate::constant::mir_operand_get_const_val(fx, imm8).expect("llvm.x86.sse2.psrli.d imm8 not const");
9696
simd_for_each_lane(fx, a, ret, |fx, _lane_layout, res_lane_layout, lane| {
9797
let res_lane = match imm8.try_to_bits(Size::from_bytes(4)).unwrap_or_else(|| panic!("imm8 not scalar: {:?}", imm8)) {
@@ -101,7 +101,7 @@ pub(crate) fn codegen_llvm_intrinsic_call<'tcx>(
101101
CValue::by_val(res_lane, res_lane_layout)
102102
});
103103
};
104-
llvm.x86.sse2.storeu.dq, (v mem_addr, c a) {
104+
"llvm.x86.sse2.storeu.dq", (v mem_addr, c a) {
105105
// FIXME correctly handle the unalignment
106106
let dest = CPlace::for_ptr(Pointer::new(mem_addr), a.layout());
107107
dest.write_cvalue(fx, a);

0 commit comments

Comments
 (0)