1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-02-01 05:01:59 +01:00
Craig Topper 5fd87a52a6 [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.

llvm-svn: 333984
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 }