llvm-6502/test/CodeGen/X86/widen_conv-2.ll
Benjamin Kramer b619dd5d5b 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186174 91177308-0d34-0410-b5e6-96231b3b80d8
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
}