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