Files
Craig Topper 912ef7aa01 [X86] Make all instructions that operate on MMX types, but were added after the initial MMX support via one of the SSE features flags make them require the MMX feature as well.
Passing -mattr=-mmx needs to disable these instructions since the MMX register class won't have been set up. But we don't want -mattr=-mmx to disable SSE so we have to do it separately.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@333984 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-05 06:20:06 +00:00

20 lines
561 B
LLVM

; RUN: llc < %s -mtriple x86_64-unknown-unknown -mattr=mmx | FileCheck %s
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
; PR23246
; We're really only interested in doing something sane with the shuffle.
; CHECK-LABEL: test:
; CHECK: movq2dq %mm0, %xmm0
; CHECK-NEXT: pshufd {{.*}} xmm0 = xmm0[0,1,0,1]
; CHECK-NEXT: retq
define <2 x i64> @test(x86_mmx %a) #0 {
entry:
%b = bitcast x86_mmx %a to <1 x i64>
%s = shufflevector <1 x i64> %b, <1 x i64> undef, <2 x i32> <i32 undef, i32 0>
ret <2 x i64> %s
}
attributes #0 = { nounwind }