1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-31 07:52:55 +01:00
llvm-mirror/test/CodeGen/X86/widen_conv-2.ll
Benjamin Kramer 95a2f42a75 X86: Shrink certain forms of movsx.
In particular:
movsbw %al, %ax   --> cbtw
movswl %ax, %eax  --> cwtl
movslq %eax, %rax --> cltq

According to Intel's manual those have the same performance characteristics but
come with a smaller encoding.

llvm-svn: 186174
2013-07-12 18:06:44 +00:00

13 lines
325 B
LLVM

; RUN: llc < %s -march=x86 -mattr=+sse42 | FileCheck %s
; CHECK: cwtl
; CHECK: cwtl
; sign extension v2i32 to v2i16
define void @convert(<2 x i32>* %dst.addr, <2 x i16> %src) nounwind {
entry:
%signext = sext <2 x i16> %src to <2 x i32> ; <<12 x i8>> [#uses=1]
store <2 x i32> %signext, <2 x i32>* %dst.addr
ret void
}