-; RUN: llc < %s -march=x86-64 -mcpu=corei7 -promote-elements -mattr=+sse41 | FileCheck %s
+; RUN: llc < %s -march=x86-64 -mcpu=corei7 -mattr=+sse4.1 | FileCheck %s
-;CHECK: load_2_i8
+;CHECK-LABEL: load_2_i8:
; A single 16-bit load
-;CHECK: movzwl
-;CHECK: pshufb
+;CHECK: pmovzxbq
;CHECK: paddq
;CHECK: pshufb
; A single 16-bit store
ret void
}
-;CHECK: load_2_i16
+;CHECK-LABEL: load_2_i16:
; Read 32-bits
-;CHECK: movd
-;CHECK: pshufb
+;CHECK: pmovzxwq
;CHECK: paddq
-;CHECK: pshufb
+;CHECK: pshufd
;CHECK: movd
;CHECK: ret
define void @load_2_i16(<2 x i16>* %A) {
ret void
}
-;CHECK: load_2_i32
-;CHECK: pshufd
-;CHECK: paddq
+;CHECK-LABEL: load_2_i32:
+;CHECK: pmovzxdq
+;CHECK: paddd
;CHECK: pshufd
;CHECK: ret
define void @load_2_i32(<2 x i32>* %A) {
ret void
}
-;CHECK: load_4_i8
-;CHECK: movd
-;CHECK: pshufb
+;CHECK-LABEL: load_4_i8:
+;CHECK: pmovzxbd
;CHECK: paddd
;CHECK: pshufb
;CHECK: ret
ret void
}
-;CHECK: load_4_i16
-;CHECK: punpcklwd
-;CHECK: paddd
+;CHECK-LABEL: load_4_i16:
+;CHECK: pmovzxwd
+;CHECK: paddw
;CHECK: pshufb
;CHECK: ret
define void @load_4_i16(<4 x i16>* %A) {
ret void
}
-;CHECK: load_8_i8
-;CHECK: punpcklbw
-;CHECK: paddw
+;CHECK-LABEL: load_8_i8:
+;CHECK: pmovzxbw
+;CHECK: paddb
;CHECK: pshufb
;CHECK: ret
define void @load_8_i8(<8 x i8>* %A) {