Replace -use-init-array with -use-ctors.
[oota-llvm.git] / test / CodeGen / X86 / avx-sext.ll
old mode 100755 (executable)
new mode 100644 (file)
index adee9bb..9bcf06f
@@ -142,59 +142,58 @@ define <8 x i16> @load_sext_test6(<8 x i8> *%ptr) {
  %Y = sext <8 x i8> %X to <8 x i16>
  ret <8 x i16>%Y
 }
-; AVX: sext_1
-; AVX: vpmovsxbd
+
+; AVX: sext_4i1_to_4i64
+; AVX: vpslld  $31
+; AVX: vpsrad  $31
 ; AVX: vpmovsxdq
 ; AVX: vpmovsxdq
 ; AVX: ret
-define void @sext_1(<4 x i8>* %inbuf, <4 x i64>* %outbuf) {
-  %v0 = load <4 x i8>* %inbuf
-  %r = sext <4 x i8> %v0 to <4 x i64>                                         
-  store <4 x i64> %r, <4 x i64>* %outbuf                                         
-  ret void                                                               
+define <4 x i64> @sext_4i1_to_4i64(<4 x i1> %mask) {
+  %extmask = sext <4 x i1> %mask to <4 x i64>
+  ret <4 x i64> %extmask
 }
 
-; AVX: sext_2
-; AVX: vpmovsxbd
+; AVX-LABEL: sext_16i8_to_16i16
+; AVX: vpmovsxbw
+; AVX: vpunpckhqdq
+; AVX: vpmovsxbw
 ; AVX: ret
-define void @sext_2(<4 x i8>* %inbuf, <4 x i32>* %outbuf) {
-  %v0 = load <4 x i8>* %inbuf
-  %r = sext <4 x i8> %v0 to <4 x i32>                                         
-  store <4 x i32> %r, <4 x i32>* %outbuf                                         
-  ret void                                                               
+define <16 x i16> @sext_16i8_to_16i16(<16 x i8> *%ptr) {
+ %X = load <16 x i8>* %ptr
+ %Y = sext <16 x i8> %X to <16 x i16>
+ ret <16 x i16> %Y
 }
-  
-; AVX: sext_3
-; AVX: vpmovsxwd
+
+; AVX: sext_4i8_to_4i64
+; AVX: vpslld  $24
+; AVX: vpsrad  $24
+; AVX: vpmovsxdq
+; AVX: vpmovsxdq
 ; AVX: ret
-define void @sext_3(<4 x i16>* %inbuf, <4 x i32>* %outbuf) {
-  %v0 = load <4 x i16>* %inbuf
-  %r = sext <4 x i16> %v0 to <4 x i32>                                         
-  store <4 x i32> %r, <4 x i32>* %outbuf                                         
-  ret void                                                               
+define <4 x i64> @sext_4i8_to_4i64(<4 x i8> %mask) {
+  %extmask = sext <4 x i8> %mask to <4 x i64>
+  ret <4 x i64> %extmask
 }
-  
-; AVX: sext_4
-; AVX: vpmovsxwd
+
+; AVX: sext_4i8_to_4i64
+; AVX: vpmovsxbd
 ; AVX: vpmovsxdq
 ; AVX: vpmovsxdq
 ; AVX: ret
-define void @sext_4(<4 x i16>* %inbuf, <4 x i64>* %outbuf) {
-  %v0 = load <4 x i16>* %inbuf
-  %r = sext <4 x i16> %v0 to <4 x i64>                                         
-  store <4 x i64> %r, <4 x i64>* %outbuf                                         
-  ret void                                                               
+define <4 x i64> @load_sext_4i8_to_4i64(<4 x i8> *%ptr) {
+ %X = load <4 x i8>* %ptr
+ %Y = sext <4 x i8> %X to <4 x i64>
+ ret <4 x i64>%Y
 }
 
-; AVX: sext_6
-; AVX: vpmovsxbw
-; AVX: vpmovsxwd
+; AVX: sext_4i16_to_4i64
 ; AVX: vpmovsxwd
+; AVX: vpmovsxdq
+; AVX: vpmovsxdq
 ; AVX: ret
-define void @sext_6(<8 x i8>* %inbuf, <8 x i32>* %outbuf) {
-  %v0 = load <8 x i8>* %inbuf
-  %r = sext <8 x i8> %v0 to <8 x i32>                                         
-  store <8 x i32> %r, <8 x i32>* %outbuf                                         
-  ret void                                                               
+define <4 x i64> @load_sext_4i16_to_4i64(<4 x i16> *%ptr) {
+ %X = load <4 x i16>* %ptr
+ %Y = sext <4 x i16> %X to <4 x i64>
+ ret <4 x i64>%Y
 }
-