; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
-; RUN: llc < %s -mtriple=x86_64-unknown-unknown | FileCheck %s
+; RUN: llc < %s -mtriple=x86_64-unknown-unknown | FileCheck %s --check-prefix=FAST-SHLD
+; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+slow-shld | FileCheck %s --check-prefix=SLOW-SHLD
define void @_start() {
-; CHECK-LABEL: _start:
-; CHECK: # %bb.0: # %Entry
-; CHECK-NEXT: movq -{{[0-9]+}}(%rsp), %rax
-; CHECK-NEXT: movq -{{[0-9]+}}(%rsp), %rcx
-; CHECK-NEXT: shrdq $2, %rcx, %rax
-; CHECK-NEXT: shrq $2, %rcx
-; CHECK-NEXT: leaq 1(,%rax,4), %rdx
-; CHECK-NEXT: movq %rdx, -{{[0-9]+}}(%rsp)
-; CHECK-NEXT: shrdq $62, %rcx, %rax
-; CHECK-NEXT: movq %rax, -{{[0-9]+}}(%rsp)
-; CHECK-NEXT: orq $-2, -{{[0-9]+}}(%rsp)
-; CHECK-NEXT: movq $-1, -{{[0-9]+}}(%rsp)
-; CHECK-NEXT: retq
+; FAST-SHLD-LABEL: _start:
+; FAST-SHLD: # %bb.0: # %Entry
+; FAST-SHLD-NEXT: movq -{{[0-9]+}}(%rsp), %rax
+; FAST-SHLD-NEXT: movq -{{[0-9]+}}(%rsp), %rcx
+; FAST-SHLD-NEXT: shrdq $2, %rcx, %rax
+; FAST-SHLD-NEXT: shrq $2, %rcx
+; FAST-SHLD-NEXT: leaq 1(,%rax,4), %rdx
+; FAST-SHLD-NEXT: movq %rdx, -{{[0-9]+}}(%rsp)
+; FAST-SHLD-NEXT: shrdq $62, %rcx, %rax
+; FAST-SHLD-NEXT: movq %rax, -{{[0-9]+}}(%rsp)
+; FAST-SHLD-NEXT: orq $-2, -{{[0-9]+}}(%rsp)
+; FAST-SHLD-NEXT: movq $-1, -{{[0-9]+}}(%rsp)
+; FAST-SHLD-NEXT: retq
+;
+; SLOW-SHLD-LABEL: _start:
+; SLOW-SHLD: # %bb.0: # %Entry
+; SLOW-SHLD-NEXT: movq -{{[0-9]+}}(%rsp), %rax
+; SLOW-SHLD-NEXT: movq -{{[0-9]+}}(%rsp), %rcx
+; SLOW-SHLD-NEXT: shrq $2, %rax
+; SLOW-SHLD-NEXT: movq %rcx, %rdx
+; SLOW-SHLD-NEXT: shlq $62, %rdx
+; SLOW-SHLD-NEXT: orq %rax, %rdx
+; SLOW-SHLD-NEXT: andq $-4, %rcx
+; SLOW-SHLD-NEXT: leaq 1(,%rdx,4), %rax
+; SLOW-SHLD-NEXT: movq %rax, -{{[0-9]+}}(%rsp)
+; SLOW-SHLD-NEXT: shrq $62, %rdx
+; SLOW-SHLD-NEXT: orq %rcx, %rdx
+; SLOW-SHLD-NEXT: movq %rdx, -{{[0-9]+}}(%rsp)
+; SLOW-SHLD-NEXT: orq $-2, -{{[0-9]+}}(%rsp)
+; SLOW-SHLD-NEXT: movq $-1, -{{[0-9]+}}(%rsp)
+; SLOW-SHLD-NEXT: retq
Entry:
%y = alloca <3 x i129>, align 4
%L = load <3 x i129>, <3 x i129>* %y