111d7203cSEvgenii Kudriashov; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 211d7203cSEvgenii Kudriashov; RUN: llc -mtriple=x86_64-linux-gnu -mattr=+sse,-sse2 %s -o - | FileCheck %s --check-prefixes SSE-X64 311d7203cSEvgenii Kudriashov; RUN: llc -mtriple=x86_64-linux-gnu -mattr=+sse,-sse2 -fast-isel %s -o - | FileCheck %s --check-prefixes SSE-X64 411d7203cSEvgenii Kudriashov; RUN: llc -mtriple=x86_64-linux-gnu -mattr=+sse,-sse2 -global-isel -global-isel-abort=1 %s -o - | FileCheck %s --check-prefixes SSE-X64-GISEL 511d7203cSEvgenii Kudriashov; RUN: llc -mtriple=i686-linux-gnu -mattr=+sse,-sse2 %s -o - | FileCheck %s --check-prefixes SSE-X86 611d7203cSEvgenii Kudriashov; RUN: llc -mtriple=i686-linux-gnu -mattr=+sse,-sse2 -fast-isel %s -o - | FileCheck %s --check-prefixes SSE-X86 711d7203cSEvgenii Kudriashov; RUN: llc -mtriple=i686-linux-gnu -mattr=+sse,-sse2 -global-isel -global-isel-abort=1 %s -o - | FileCheck %s --check-prefixes SSE-X86-GISEL 811d7203cSEvgenii Kudriashov 911d7203cSEvgenii Kudriashovdefine <8 x i32> @test_vector_v8i32() { 1011d7203cSEvgenii Kudriashov; SSE-X64-LABEL: test_vector_v8i32: 1111d7203cSEvgenii Kudriashov; SSE-X64: # %bb.0: 1211d7203cSEvgenii Kudriashov; SSE-X64-NEXT: movq %rdi, %rax 1311d7203cSEvgenii Kudriashov; SSE-X64-NEXT: movabsq $3043555126665690671, %rcx # imm = 0x2A3CE143233A3E2F 1411d7203cSEvgenii Kudriashov; SSE-X64-NEXT: movq %rcx, 24(%rdi) 1511d7203cSEvgenii Kudriashov; SSE-X64-NEXT: movabsq $-2720818644236378031, %rcx # imm = 0xDA3DB5DBCC07E051 1611d7203cSEvgenii Kudriashov; SSE-X64-NEXT: movq %rcx, 16(%rdi) 1711d7203cSEvgenii Kudriashov; SSE-X64-NEXT: movabsq $3043545045377446960, %rcx # imm = 0x2A3CD817E79F7430 1811d7203cSEvgenii Kudriashov; SSE-X64-NEXT: movq %rcx, 8(%rdi) 1911d7203cSEvgenii Kudriashov; SSE-X64-NEXT: movabsq $-2715530310134355376, %rcx # imm = 0xDA507F9207A2AA50 2011d7203cSEvgenii Kudriashov; SSE-X64-NEXT: movq %rcx, (%rdi) 2111d7203cSEvgenii Kudriashov; SSE-X64-NEXT: retq 2211d7203cSEvgenii Kudriashov; 2311d7203cSEvgenii Kudriashov; SSE-X64-GISEL-LABEL: test_vector_v8i32: 2411d7203cSEvgenii Kudriashov; SSE-X64-GISEL: # %bb.0: 25*b5b0a22eSEvgenii Kudriashov; SSE-X64-GISEL-NEXT: movq %rdi, %rax 26*b5b0a22eSEvgenii Kudriashov; SSE-X64-GISEL-NEXT: movl $128100944, %ecx # imm = 0x7A2AA50 27*b5b0a22eSEvgenii Kudriashov; SSE-X64-GISEL-NEXT: movl $-632258670, %edx # imm = 0xDA507F92 28*b5b0a22eSEvgenii Kudriashov; SSE-X64-GISEL-NEXT: movl $-408980432, %esi # imm = 0xE79F7430 29*b5b0a22eSEvgenii Kudriashov; SSE-X64-GISEL-NEXT: movl $708630551, %edi # imm = 0x2A3CD817 3011d7203cSEvgenii Kudriashov; SSE-X64-GISEL-NEXT: movl $-871899055, %r8d # imm = 0xCC07E051 3111d7203cSEvgenii Kudriashov; SSE-X64-GISEL-NEXT: movl $-633489957, %r9d # imm = 0xDA3DB5DB 3211d7203cSEvgenii Kudriashov; SSE-X64-GISEL-NEXT: movl $591019567, %r10d # imm = 0x233A3E2F 3311d7203cSEvgenii Kudriashov; SSE-X64-GISEL-NEXT: movl $708632899, %r11d # imm = 0x2A3CE143 34*b5b0a22eSEvgenii Kudriashov; SSE-X64-GISEL-NEXT: movl %ecx, (%rax) 35*b5b0a22eSEvgenii Kudriashov; SSE-X64-GISEL-NEXT: movl %edx, 4(%rax) 36*b5b0a22eSEvgenii Kudriashov; SSE-X64-GISEL-NEXT: movl %esi, 8(%rax) 37*b5b0a22eSEvgenii Kudriashov; SSE-X64-GISEL-NEXT: movl %edi, 12(%rax) 38*b5b0a22eSEvgenii Kudriashov; SSE-X64-GISEL-NEXT: movl %r8d, 16(%rax) 39*b5b0a22eSEvgenii Kudriashov; SSE-X64-GISEL-NEXT: movl %r9d, 20(%rax) 40*b5b0a22eSEvgenii Kudriashov; SSE-X64-GISEL-NEXT: movl %r10d, 24(%rax) 41*b5b0a22eSEvgenii Kudriashov; SSE-X64-GISEL-NEXT: movl %r11d, 28(%rax) 4211d7203cSEvgenii Kudriashov; SSE-X64-GISEL-NEXT: retq 4311d7203cSEvgenii Kudriashov; 4411d7203cSEvgenii Kudriashov; SSE-X86-LABEL: test_vector_v8i32: 4511d7203cSEvgenii Kudriashov; SSE-X86: # %bb.0: 4611d7203cSEvgenii Kudriashov; SSE-X86-NEXT: movl {{[0-9]+}}(%esp), %eax 4711d7203cSEvgenii Kudriashov; SSE-X86-NEXT: movl $708632899, 28(%eax) # imm = 0x2A3CE143 4811d7203cSEvgenii Kudriashov; SSE-X86-NEXT: movl $591019567, 24(%eax) # imm = 0x233A3E2F 4911d7203cSEvgenii Kudriashov; SSE-X86-NEXT: movl $-633489957, 20(%eax) # imm = 0xDA3DB5DB 5011d7203cSEvgenii Kudriashov; SSE-X86-NEXT: movl $-871899055, 16(%eax) # imm = 0xCC07E051 5111d7203cSEvgenii Kudriashov; SSE-X86-NEXT: movl $708630551, 12(%eax) # imm = 0x2A3CD817 5211d7203cSEvgenii Kudriashov; SSE-X86-NEXT: movl $-408980432, 8(%eax) # imm = 0xE79F7430 5311d7203cSEvgenii Kudriashov; SSE-X86-NEXT: movl $-632258670, 4(%eax) # imm = 0xDA507F92 5411d7203cSEvgenii Kudriashov; SSE-X86-NEXT: movl $128100944, (%eax) # imm = 0x7A2AA50 5511d7203cSEvgenii Kudriashov; SSE-X86-NEXT: retl $4 5611d7203cSEvgenii Kudriashov; 5711d7203cSEvgenii Kudriashov; SSE-X86-GISEL-LABEL: test_vector_v8i32: 5811d7203cSEvgenii Kudriashov; SSE-X86-GISEL: # %bb.0: 5911d7203cSEvgenii Kudriashov; SSE-X86-GISEL-NEXT: movl {{[0-9]+}}(%esp), %eax 6011d7203cSEvgenii Kudriashov; SSE-X86-GISEL-NEXT: movl $128100944, %ecx # imm = 0x7A2AA50 6111d7203cSEvgenii Kudriashov; SSE-X86-GISEL-NEXT: movl %ecx, (%eax) 6211d7203cSEvgenii Kudriashov; SSE-X86-GISEL-NEXT: movl $-632258670, %ecx # imm = 0xDA507F92 6311d7203cSEvgenii Kudriashov; SSE-X86-GISEL-NEXT: movl %ecx, 4(%eax) 6411d7203cSEvgenii Kudriashov; SSE-X86-GISEL-NEXT: movl $-408980432, %ecx # imm = 0xE79F7430 6511d7203cSEvgenii Kudriashov; SSE-X86-GISEL-NEXT: movl %ecx, 8(%eax) 6611d7203cSEvgenii Kudriashov; SSE-X86-GISEL-NEXT: movl $708630551, %ecx # imm = 0x2A3CD817 6711d7203cSEvgenii Kudriashov; SSE-X86-GISEL-NEXT: movl %ecx, 12(%eax) 6811d7203cSEvgenii Kudriashov; SSE-X86-GISEL-NEXT: movl $-871899055, %ecx # imm = 0xCC07E051 6911d7203cSEvgenii Kudriashov; SSE-X86-GISEL-NEXT: movl %ecx, 16(%eax) 7011d7203cSEvgenii Kudriashov; SSE-X86-GISEL-NEXT: movl $-633489957, %ecx # imm = 0xDA3DB5DB 7111d7203cSEvgenii Kudriashov; SSE-X86-GISEL-NEXT: movl %ecx, 20(%eax) 7211d7203cSEvgenii Kudriashov; SSE-X86-GISEL-NEXT: movl $591019567, %ecx # imm = 0x233A3E2F 7311d7203cSEvgenii Kudriashov; SSE-X86-GISEL-NEXT: movl %ecx, 24(%eax) 7411d7203cSEvgenii Kudriashov; SSE-X86-GISEL-NEXT: movl $708632899, %ecx # imm = 0x2A3CE143 7511d7203cSEvgenii Kudriashov; SSE-X86-GISEL-NEXT: movl %ecx, 28(%eax) 7611d7203cSEvgenii Kudriashov; SSE-X86-GISEL-NEXT: retl 7711d7203cSEvgenii Kudriashov ret <8 x i32> <i32 128100944, i32 3662708626, i32 3885986864, i32 708630551, i32 -871899055, i32 3661477339, i32 4885986863, i32 708632899> 7811d7203cSEvgenii Kudriashov} 7911d7203cSEvgenii Kudriashov 8011d7203cSEvgenii Kudriashovdefine <4 x i32> @test_vector_v4i32() { 8111d7203cSEvgenii Kudriashov; SSE-X64-LABEL: test_vector_v4i32: 8211d7203cSEvgenii Kudriashov; SSE-X64: # %bb.0: 8311d7203cSEvgenii Kudriashov; SSE-X64-NEXT: movq %rdi, %rax 8411d7203cSEvgenii Kudriashov; SSE-X64-NEXT: movabsq $3043545045377446960, %rcx # imm = 0x2A3CD817E79F7430 8511d7203cSEvgenii Kudriashov; SSE-X64-NEXT: movq %rcx, 8(%rdi) 8611d7203cSEvgenii Kudriashov; SSE-X64-NEXT: movabsq $-2715530310134355376, %rcx # imm = 0xDA507F9207A2AA50 8711d7203cSEvgenii Kudriashov; SSE-X64-NEXT: movq %rcx, (%rdi) 8811d7203cSEvgenii Kudriashov; SSE-X64-NEXT: retq 8911d7203cSEvgenii Kudriashov; 9011d7203cSEvgenii Kudriashov; SSE-X64-GISEL-LABEL: test_vector_v4i32: 9111d7203cSEvgenii Kudriashov; SSE-X64-GISEL: # %bb.0: 92*b5b0a22eSEvgenii Kudriashov; SSE-X64-GISEL-NEXT: movq %rdi, %rax 9311d7203cSEvgenii Kudriashov; SSE-X64-GISEL-NEXT: movaps {{.*#+}} xmm0 = [128100944,3662708626,3885986864,708630551] 9411d7203cSEvgenii Kudriashov; SSE-X64-GISEL-NEXT: movaps %xmm0, (%rdi) 9511d7203cSEvgenii Kudriashov; SSE-X64-GISEL-NEXT: retq 9611d7203cSEvgenii Kudriashov; 9711d7203cSEvgenii Kudriashov; SSE-X86-LABEL: test_vector_v4i32: 9811d7203cSEvgenii Kudriashov; SSE-X86: # %bb.0: 9911d7203cSEvgenii Kudriashov; SSE-X86-NEXT: movl {{[0-9]+}}(%esp), %eax 10011d7203cSEvgenii Kudriashov; SSE-X86-NEXT: movl $708630551, 12(%eax) # imm = 0x2A3CD817 10111d7203cSEvgenii Kudriashov; SSE-X86-NEXT: movl $-408980432, 8(%eax) # imm = 0xE79F7430 10211d7203cSEvgenii Kudriashov; SSE-X86-NEXT: movl $-632258670, 4(%eax) # imm = 0xDA507F92 10311d7203cSEvgenii Kudriashov; SSE-X86-NEXT: movl $128100944, (%eax) # imm = 0x7A2AA50 10411d7203cSEvgenii Kudriashov; SSE-X86-NEXT: retl $4 10511d7203cSEvgenii Kudriashov; 10611d7203cSEvgenii Kudriashov; SSE-X86-GISEL-LABEL: test_vector_v4i32: 10711d7203cSEvgenii Kudriashov; SSE-X86-GISEL: # %bb.0: 10811d7203cSEvgenii Kudriashov; SSE-X86-GISEL-NEXT: movl {{[0-9]+}}(%esp), %eax 10911d7203cSEvgenii Kudriashov; SSE-X86-GISEL-NEXT: movaps {{.*#+}} xmm0 = [128100944,3662708626,3885986864,708630551] 11011d7203cSEvgenii Kudriashov; SSE-X86-GISEL-NEXT: movaps %xmm0, (%eax) 11111d7203cSEvgenii Kudriashov; SSE-X86-GISEL-NEXT: retl 11211d7203cSEvgenii Kudriashov ret <4 x i32> <i32 128100944, i32 3662708626, i32 3885986864, i32 708630551> 11311d7203cSEvgenii Kudriashov} 11411d7203cSEvgenii Kudriashov 11511d7203cSEvgenii Kudriashovdefine <3 x i32> @test_vector_v3i32() { 11611d7203cSEvgenii Kudriashov; SSE-X64-LABEL: test_vector_v3i32: 11711d7203cSEvgenii Kudriashov; SSE-X64: # %bb.0: 11811d7203cSEvgenii Kudriashov; SSE-X64-NEXT: movl $128100944, %eax # imm = 0x7A2AA50 11911d7203cSEvgenii Kudriashov; SSE-X64-NEXT: movl $-632258670, %edx # imm = 0xDA507F92 12011d7203cSEvgenii Kudriashov; SSE-X64-NEXT: movl $-408980432, %ecx # imm = 0xE79F7430 12111d7203cSEvgenii Kudriashov; SSE-X64-NEXT: retq 12211d7203cSEvgenii Kudriashov; 12311d7203cSEvgenii Kudriashov; SSE-X64-GISEL-LABEL: test_vector_v3i32: 12411d7203cSEvgenii Kudriashov; SSE-X64-GISEL: # %bb.0: 12511d7203cSEvgenii Kudriashov; SSE-X64-GISEL-NEXT: movl $128100944, %eax # imm = 0x7A2AA50 12611d7203cSEvgenii Kudriashov; SSE-X64-GISEL-NEXT: movl $-632258670, %edx # imm = 0xDA507F92 12711d7203cSEvgenii Kudriashov; SSE-X64-GISEL-NEXT: movl $-408980432, %ecx # imm = 0xE79F7430 12811d7203cSEvgenii Kudriashov; SSE-X64-GISEL-NEXT: retq 12911d7203cSEvgenii Kudriashov; 13011d7203cSEvgenii Kudriashov; SSE-X86-LABEL: test_vector_v3i32: 13111d7203cSEvgenii Kudriashov; SSE-X86: # %bb.0: 13211d7203cSEvgenii Kudriashov; SSE-X86-NEXT: movl $128100944, %eax # imm = 0x7A2AA50 13311d7203cSEvgenii Kudriashov; SSE-X86-NEXT: movl $-632258670, %edx # imm = 0xDA507F92 13411d7203cSEvgenii Kudriashov; SSE-X86-NEXT: movl $-408980432, %ecx # imm = 0xE79F7430 13511d7203cSEvgenii Kudriashov; SSE-X86-NEXT: retl 13611d7203cSEvgenii Kudriashov; 13711d7203cSEvgenii Kudriashov; SSE-X86-GISEL-LABEL: test_vector_v3i32: 13811d7203cSEvgenii Kudriashov; SSE-X86-GISEL: # %bb.0: 13911d7203cSEvgenii Kudriashov; SSE-X86-GISEL-NEXT: movl $128100944, %eax # imm = 0x7A2AA50 14011d7203cSEvgenii Kudriashov; SSE-X86-GISEL-NEXT: movl $-632258670, %edx # imm = 0xDA507F92 14111d7203cSEvgenii Kudriashov; SSE-X86-GISEL-NEXT: movl $-408980432, %ecx # imm = 0xE79F7430 14211d7203cSEvgenii Kudriashov; SSE-X86-GISEL-NEXT: retl 14311d7203cSEvgenii Kudriashov ret <3 x i32> <i32 128100944, i32 3662708626, i32 3885986864> 14411d7203cSEvgenii Kudriashov} 14511d7203cSEvgenii Kudriashov 146