1 ; RUN: llc < %s -march=x86-64 | FileCheck %s 2 3 define <2 x i256> @test_shl(<2 x i256> %In) { 4 %Amt = insertelement <2 x i256> undef, i256 -1, i32 0 5 %Out = shl <2 x i256> %In, %Amt 6 ret <2 x i256> %Out 7 8 ; CHECK-LABEL: test_shl 9 ; CHECK: movq $0 10 ; CHECK-NEXT: movq $0 11 ; CHECK-NEXT: movq $0 12 ; CHECK-NEXT: movq $0 13 ; CHECK-NEXT: movq $0 14 ; CHECK-NEXT: movq $0 15 ; CHECK-NEXT: movq $0 16 ; CHECK-NEXT: movq $0 17 ; CHECK: retq 18 } 19 20 define <2 x i256> @test_srl(<2 x i256> %In) { 21 %Amt = insertelement <2 x i256> undef, i256 -1, i32 0 22 %Out = lshr <2 x i256> %In, %Amt 23 ret <2 x i256> %Out 24 25 ; CHECK-LABEL: test_srl 26 ; CHECK: movq $0 27 ; CHECK-NEXT: movq $0 28 ; CHECK-NEXT: movq $0 29 ; CHECK-NEXT: movq $0 30 ; CHECK-NEXT: movq $0 31 ; CHECK-NEXT: movq $0 32 ; CHECK-NEXT: movq $0 33 ; CHECK-NEXT: movq $0 34 ; CHECK: retq 35 } 36 37 define <2 x i256> @test_sra(<2 x i256> %In) { 38 %Amt = insertelement <2 x i256> undef, i256 -1, i32 0 39 %Out = ashr <2 x i256> %In, %Amt 40 ret <2 x i256> %Out 41 42 ; CHECK-LABEL: test_sra 43 ; CHECK: sarq $63 44 } 45