; MIPS32-AE: ld.b [[R1:\$w[0-9]+]], 0([[G_PTR]])
ret void
- ; MIPS32-AE: .size const_v16i8
}
define void @const_v8i16() nounwind {
; MIPS32-AE: ld.h [[R1:\$w[0-9]+]], 0([[G_PTR]])
ret void
- ; MIPS32-AE: .size const_v8i16
}
define void @const_v4i32() nounwind {
; MIPS32-AE: ld.w [[R1:\$w[0-9]+]], 0([[G_PTR]])
ret void
- ; MIPS32-AE: .size const_v4i32
}
define void @const_v2i64() nounwind {
; MIPS32-AE: ld.w [[R1:\$w[0-9]+]], 0([[G_PTR]])
ret void
- ; MIPS32-AE: .size const_v2i64
}
define void @nonconst_v16i8(i8 signext %a, i8 signext %b, i8 signext %c, i8 signext %d, i8 signext %e, i8 signext %f, i8 signext %g, i8 signext %h) nounwind {
store volatile <16 x i8> %16, <16 x i8>*@v16i8
ret void
- ; MIPS32-AE: .size nonconst_v16i8
}
define void @nonconst_v8i16(i16 signext %a, i16 signext %b, i16 signext %c, i16 signext %d, i16 signext %e, i16 signext %f, i16 signext %g, i16 signext %h) nounwind {
store volatile <8 x i16> %8, <8 x i16>*@v8i16
ret void
- ; MIPS32-AE: .size nonconst_v8i16
}
define void @nonconst_v4i32(i32 signext %a, i32 signext %b, i32 signext %c, i32 signext %d) nounwind {
store volatile <4 x i32> %4, <4 x i32>*@v4i32
ret void
- ; MIPS32-AE: .size nonconst_v4i32
}
define void @nonconst_v2i64(i64 signext %a, i64 signext %b) nounwind {
store volatile <2 x i64> %2, <2 x i64>*@v2i64
ret void
- ; MIPS32-AE: .size nonconst_v2i64
}
define i32 @extract_sext_v16i8() nounwind {
; MIPS32-AE-NOT: sra
ret i32 %4
- ; MIPS32-AE: .size extract_sext_v16i8
}
define i32 @extract_sext_v8i16() nounwind {
; MIPS32-AE-NOT: sra
ret i32 %4
- ; MIPS32-AE: .size extract_sext_v8i16
}
define i32 @extract_sext_v4i32() nounwind {
; MIPS32-AE-DAG: copy_s.w [[R3:\$[0-9]+]], [[R1]][1]
ret i32 %3
- ; MIPS32-AE: .size extract_sext_v4i32
}
define i64 @extract_sext_v2i64() nounwind {
; MIPS32-AE-NOT: sra
ret i64 %3
- ; MIPS32-AE: .size extract_sext_v2i64
}
define i32 @extract_zext_v16i8() nounwind {
; MIPS32-AE-NOT: andi
ret i32 %4
- ; MIPS32-AE: .size extract_zext_v16i8
}
define i32 @extract_zext_v8i16() nounwind {
; MIPS32-AE-NOT: andi
ret i32 %4
- ; MIPS32-AE: .size extract_zext_v8i16
}
define i32 @extract_zext_v4i32() nounwind {
; MIPS32-AE-DAG: copy_{{[su]}}.w [[R3:\$[0-9]+]], [[R1]][1]
ret i32 %3
- ; MIPS32-AE: .size extract_zext_v4i32
}
define i64 @extract_zext_v2i64() nounwind {
; MIPS32-AE-NOT: andi
ret i64 %3
- ; MIPS32-AE: .size extract_zext_v2i64
}
define i32 @extract_sext_v16i8_vidx() nounwind {
; MIPS32-AE-DAG: sra [[R6:\$[0-9]+]], [[R5]], 24
ret i32 %5
- ; MIPS32-AE: .size extract_sext_v16i8_vidx
}
define i32 @extract_sext_v8i16_vidx() nounwind {
; MIPS32-AE-DAG: sra [[R6:\$[0-9]+]], [[R5]], 16
ret i32 %5
- ; MIPS32-AE: .size extract_sext_v8i16_vidx
}
define i32 @extract_sext_v4i32_vidx() nounwind {
; MIPS32-AE-NOT: sra
ret i32 %4
- ; MIPS32-AE: .size extract_sext_v4i32_vidx
}
define i64 @extract_sext_v2i64_vidx() nounwind {
; MIPS32-AE-NOT: sra
ret i64 %4
- ; MIPS32-AE: .size extract_sext_v2i64_vidx
}
define i32 @extract_zext_v16i8_vidx() nounwind {
; MIPS32-AE-DAG: srl [[R6:\$[0-9]+]], [[R5]], 24
ret i32 %5
- ; MIPS32-AE: .size extract_zext_v16i8_vidx
}
define i32 @extract_zext_v8i16_vidx() nounwind {
; MIPS32-AE-DAG: srl [[R6:\$[0-9]+]], [[R5]], 16
ret i32 %5
- ; MIPS32-AE: .size extract_zext_v8i16_vidx
}
define i32 @extract_zext_v4i32_vidx() nounwind {
; MIPS32-AE-NOT: srl
ret i32 %4
- ; MIPS32-AE: .size extract_zext_v4i32_vidx
}
define i64 @extract_zext_v2i64_vidx() nounwind {
; MIPS32-AE-NOT: srl
ret i64 %4
- ; MIPS32-AE: .size extract_zext_v2i64_vidx
}
define void @insert_v16i8(i32 signext %a) nounwind {
; MIPS32-AE-DAG: st.b [[R1]]
ret void
- ; MIPS32-AE: .size insert_v16i8
}
define void @insert_v8i16(i32 signext %a) nounwind {
; MIPS32-AE-DAG: st.h [[R1]]
ret void
- ; MIPS32-AE: .size insert_v8i16
}
define void @insert_v4i32(i32 signext %a) nounwind {
; MIPS32-AE-DAG: st.w [[R1]]
ret void
- ; MIPS32-AE: .size insert_v4i32
}
define void @insert_v2i64(i64 signext %a) nounwind {
; MIPS32-AE-DAG: st.w [[R1]]
ret void
- ; MIPS32-AE: .size insert_v2i64
}
define void @insert_v16i8_vidx(i32 signext %a) nounwind {
- ; MIPS32-AE: insert_v16i8_vidx:
+ ; MIPS32-AE-LABEL: insert_v16i8_vidx:
%1 = load <16 x i8>, <16 x i8>* @v16i8
; MIPS32-AE-DAG: ld.b [[R1:\$w[0-9]+]],
; MIPS32-AE-DAG: st.b [[R1]]
ret void
- ; MIPS32-AE: .size insert_v16i8_vidx
}
-define void @insert_v8i16_vidx(i32 signext %a) nounwind {
- ; MIPS32-AE: insert_v8i16_vidx:
+define void @insert_v8i16_vidx(i32 %a) nounwind {
+ ; MIPS32-AE-LABEL: insert_v8i16_vidx:
%1 = load <8 x i16>, <8 x i16>* @v8i16
; MIPS32-AE-DAG: ld.h [[R1:\$w[0-9]+]],
; MIPS32-AE-DAG: st.h [[R1]]
ret void
- ; MIPS32-AE: .size insert_v8i16_vidx
}
define void @insert_v4i32_vidx(i32 signext %a) nounwind {
- ; MIPS32-AE: insert_v4i32_vidx:
+ ; MIPS32-AE-LABEL: insert_v4i32_vidx:
%1 = load <4 x i32>, <4 x i32>* @v4i32
; MIPS32-AE-DAG: ld.w [[R1:\$w[0-9]+]],
; MIPS32-AE-DAG: st.w [[R1]]
ret void
- ; MIPS32-AE: .size insert_v4i32_vidx
}
define void @insert_v2i64_vidx(i64 signext %a) nounwind {
- ; MIPS32-AE: insert_v2i64_vidx:
+ ; MIPS32-AE-LABEL: insert_v2i64_vidx:
%1 = load <2 x i64>, <2 x i64>* @v2i64
; MIPS32-AE-DAG: ld.w [[R1:\$w[0-9]+]],
; MIPS32-AE-DAG: st.w [[R1]]
ret void
- ; MIPS32-AE: .size insert_v2i64_vidx
}
define void @truncstore() nounwind {
; TODO: What code should be emitted?
ret void
- ; MIPS32-AE: .size truncstore
}
; MIPS32: ld.w [[R1:\$w[0-9]+]], 0([[G_PTR]])
ret void
- ; MIPS32: .size const_v4f32
}
define void @const_v2f64() nounwind {
; MIPS32: ld.d [[R1:\$w[0-9]+]], 0([[G_PTR]])
ret void
- ; MIPS32: .size const_v2f64
}
define void @nonconst_v4f32() nounwind {
; MIPS32: splati.w [[R2:\$w[0-9]+]], $w[[R1]]
ret void
- ; MIPS32: .size nonconst_v4f32
}
define void @nonconst_v2f64() nounwind {
; MIPS32: splati.d [[R2:\$w[0-9]+]], $w[[R1]]
ret void
- ; MIPS32: .size nonconst_v2f64
}
define float @extract_v4f32() nounwind {
; MIPS32-DAG: splati.w $w0, [[R1]][1]
ret float %3
- ; MIPS32: .size extract_v4f32
}
define float @extract_v4f32_elt0() nounwind {
; MIPS32-NOT: mtc1
ret float %3
- ; MIPS32: .size extract_v4f32_elt0
}
define float @extract_v4f32_elt2() nounwind {
; MIPS32-DAG: splati.w $w0, [[R1]][2]
ret float %3
- ; MIPS32: .size extract_v4f32_elt2
}
define float @extract_v4f32_vidx() nounwind {
; MIPS32-DAG: splat.w $w0, [[R1]]{{\[}}[[IDX]]]
ret float %4
- ; MIPS32: .size extract_v4f32_vidx
}
define double @extract_v2f64() nounwind {
; MIPS32-NOT: sra
ret double %3
- ; MIPS32: .size extract_v2f64
}
define double @extract_v2f64_elt0() nounwind {
; MIPS32-NOT: sra
ret double %3
- ; MIPS32: .size extract_v2f64_elt0
}
define double @extract_v2f64_vidx() nounwind {
; MIPS32-DAG: splat.d $w0, [[R1]]{{\[}}[[IDX]]]
ret double %4
- ; MIPS32: .size extract_v2f64_vidx
}
define void @insert_v4f32(float %a) nounwind {
; MIPS32-DAG: st.w [[R1]]
ret void
- ; MIPS32: .size insert_v4f32
}
define void @insert_v2f64(double %a) nounwind {
; MIPS32-DAG: st.d [[R1]]
ret void
- ; MIPS32: .size insert_v2f64
}
define void @insert_v4f32_vidx(float %a) nounwind {
; MIPS32-DAG: st.w [[R1]]
ret void
- ; MIPS32: .size insert_v4f32_vidx
}
define void @insert_v2f64_vidx(double %a) nounwind {
; MIPS32-DAG: st.d [[R1]]
ret void
- ; MIPS32: .size insert_v2f64_vidx
}