mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
Fixed vsqrt.ss intrinsic usage - order of input operands was wrong.
Added a test. Thanks Bruno for reviewing the patch. llvm-svn: 145403
This commit is contained in:
parent
637e60afdd
commit
735cff1fa8
@ -2872,7 +2872,7 @@ multiclass sse1_fp_unop_s_avx<bits<8> opc, string OpcodeStr> {
|
||||
!strconcat(OpcodeStr,
|
||||
"ss\t{$src2, $src1, $dst|$dst, $src1, $src2}"), []>;
|
||||
def SSm_Int : SSI<opc, MRMSrcMem, (outs VR128:$dst),
|
||||
(ins ssmem:$src1, VR128:$src2),
|
||||
(ins VR128:$src1, ssmem:$src2),
|
||||
!strconcat(OpcodeStr,
|
||||
"ss\t{$src2, $src1, $dst|$dst, $src1, $src2}"), []>;
|
||||
}
|
||||
|
@ -259,3 +259,14 @@ define <4 x i64> @mul-v4i64(<4 x i64> %i, <4 x i64> %j) nounwind readnone {
|
||||
ret <4 x i64> %x
|
||||
}
|
||||
|
||||
declare <4 x float> @llvm.x86.sse.sqrt.ss(<4 x float>) nounwind readnone
|
||||
|
||||
define <4 x float> @int_sqrt_ss() {
|
||||
; CHECK: int_sqrt_ss
|
||||
; CHECK: vsqrtss
|
||||
%x0 = load float addrspace(1)* undef, align 8
|
||||
%x1 = insertelement <4 x float> undef, float %x0, i32 0
|
||||
%x2 = call <4 x float> @llvm.x86.sse.sqrt.ss(<4 x float> %x1) nounwind
|
||||
ret <4 x float> %x2
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user