| ; RUN: llc < %s -march=x86-64 | FileCheck %s |
| |
| define <2 x i256> @test_shl(<2 x i256> %In) { |
| %Amt = insertelement <2 x i256> undef, i256 -1, i32 0 |
| %Out = shl <2 x i256> %In, %Amt |
| ret <2 x i256> %Out |
| |
| ; CHECK-LABEL: test_shl |
| ; CHECK: movq $0 |
| ; CHECK-NEXT: movq $0 |
| ; CHECK-NEXT: movq $0 |
| ; CHECK-NEXT: movq $0 |
| ; CHECK-NEXT: movq $0 |
| ; CHECK-NEXT: movq $0 |
| ; CHECK-NEXT: movq $0 |
| ; CHECK-NEXT: movq $0 |
| ; CHECK: retq |
| } |
| |
| define <2 x i256> @test_srl(<2 x i256> %In) { |
| %Amt = insertelement <2 x i256> undef, i256 -1, i32 0 |
| %Out = lshr <2 x i256> %In, %Amt |
| ret <2 x i256> %Out |
| |
| ; CHECK-LABEL: test_srl |
| ; CHECK: movq $0 |
| ; CHECK-NEXT: movq $0 |
| ; CHECK-NEXT: movq $0 |
| ; CHECK-NEXT: movq $0 |
| ; CHECK-NEXT: movq $0 |
| ; CHECK-NEXT: movq $0 |
| ; CHECK-NEXT: movq $0 |
| ; CHECK-NEXT: movq $0 |
| ; CHECK: retq |
| } |
| |
| define <2 x i256> @test_sra(<2 x i256> %In) { |
| %Amt = insertelement <2 x i256> undef, i256 -1, i32 0 |
| %Out = ashr <2 x i256> %In, %Amt |
| ret <2 x i256> %Out |
| |
| ; CHECK-LABEL: test_sra |
| ; CHECK: sarq $63 |
| } |