1*9880d681SAndroid Build Coastguard Worker; NOTE: Assertions have been autogenerated by update_test_checks.py 2*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=x86_64-unknown-unknown < %s -mattr=sse | FileCheck %s --check-prefix=SSE 3*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=x86_64-unknown-unknown < %s -mattr=sse2 | FileCheck %s --check-prefix=SSE 4*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=x86_64-unknown-unknown < %s -mattr=sse2,-slow-unaligned-mem-16 | FileCheck %s --check-prefix=SSE2FAST 5*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=x86_64-unknown-unknown < %s -mattr=avx | FileCheck %s --check-prefix=AVX --check-prefix=AVX1 6*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=x86_64-unknown-unknown < %s -mattr=avx2 | FileCheck %s --check-prefix=AVX --check-prefix=AVX2 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Worker; https://llvm.org/bugs/show_bug.cgi?id=27100 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Workerdefine void @memset_16_nonzero_bytes(i8* %x) { 11*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: memset_16_nonzero_bytes: 12*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: 13*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movabsq $3038287259199220266, %rax # imm = 0x2A2A2A2A2A2A2A2A 14*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, 8(%rdi) 15*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, (%rdi) 16*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 17*9880d681SAndroid Build Coastguard Worker; 18*9880d681SAndroid Build Coastguard Worker; SSE2FAST-LABEL: memset_16_nonzero_bytes: 19*9880d681SAndroid Build Coastguard Worker; SSE2FAST: # BB#0: 20*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movaps {{.*#+}} xmm0 = [42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42] 21*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, (%rdi) 22*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: retq 23*9880d681SAndroid Build Coastguard Worker; 24*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: memset_16_nonzero_bytes: 25*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: 26*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vmovaps {{.*#+}} xmm0 = [42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42] 27*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vmovups %xmm0, (%rdi) 28*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 29*9880d681SAndroid Build Coastguard Worker; 30*9880d681SAndroid Build Coastguard Worker %call = tail call i8* @__memset_chk(i8* %x, i32 42, i64 16, i64 -1) 31*9880d681SAndroid Build Coastguard Worker ret void 32*9880d681SAndroid Build Coastguard Worker} 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Workerdefine void @memset_32_nonzero_bytes(i8* %x) { 35*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: memset_32_nonzero_bytes: 36*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: 37*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movabsq $3038287259199220266, %rax # imm = 0x2A2A2A2A2A2A2A2A 38*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, 24(%rdi) 39*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, 16(%rdi) 40*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, 8(%rdi) 41*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, (%rdi) 42*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 43*9880d681SAndroid Build Coastguard Worker; 44*9880d681SAndroid Build Coastguard Worker; SSE2FAST-LABEL: memset_32_nonzero_bytes: 45*9880d681SAndroid Build Coastguard Worker; SSE2FAST: # BB#0: 46*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movaps {{.*#+}} xmm0 = [42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42] 47*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, 16(%rdi) 48*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, (%rdi) 49*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: retq 50*9880d681SAndroid Build Coastguard Worker; 51*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: memset_32_nonzero_bytes: 52*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: 53*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vmovaps {{.*#+}} ymm0 = [42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42] 54*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vmovups %ymm0, (%rdi) 55*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vzeroupper 56*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 57*9880d681SAndroid Build Coastguard Worker; 58*9880d681SAndroid Build Coastguard Worker %call = tail call i8* @__memset_chk(i8* %x, i32 42, i64 32, i64 -1) 59*9880d681SAndroid Build Coastguard Worker ret void 60*9880d681SAndroid Build Coastguard Worker} 61*9880d681SAndroid Build Coastguard Worker 62*9880d681SAndroid Build Coastguard Workerdefine void @memset_64_nonzero_bytes(i8* %x) { 63*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: memset_64_nonzero_bytes: 64*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: 65*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movabsq $3038287259199220266, %rax # imm = 0x2A2A2A2A2A2A2A2A 66*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, 56(%rdi) 67*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, 48(%rdi) 68*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, 40(%rdi) 69*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, 32(%rdi) 70*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, 24(%rdi) 71*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, 16(%rdi) 72*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, 8(%rdi) 73*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, (%rdi) 74*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 75*9880d681SAndroid Build Coastguard Worker; 76*9880d681SAndroid Build Coastguard Worker; SSE2FAST-LABEL: memset_64_nonzero_bytes: 77*9880d681SAndroid Build Coastguard Worker; SSE2FAST: # BB#0: 78*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movaps {{.*#+}} xmm0 = [42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42] 79*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, 48(%rdi) 80*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, 32(%rdi) 81*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, 16(%rdi) 82*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, (%rdi) 83*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: retq 84*9880d681SAndroid Build Coastguard Worker; 85*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: memset_64_nonzero_bytes: 86*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: 87*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vmovaps {{.*#+}} ymm0 = [42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42] 88*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vmovups %ymm0, 32(%rdi) 89*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vmovups %ymm0, (%rdi) 90*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vzeroupper 91*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 92*9880d681SAndroid Build Coastguard Worker; 93*9880d681SAndroid Build Coastguard Worker %call = tail call i8* @__memset_chk(i8* %x, i32 42, i64 64, i64 -1) 94*9880d681SAndroid Build Coastguard Worker ret void 95*9880d681SAndroid Build Coastguard Worker} 96*9880d681SAndroid Build Coastguard Worker 97*9880d681SAndroid Build Coastguard Workerdefine void @memset_128_nonzero_bytes(i8* %x) { 98*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: memset_128_nonzero_bytes: 99*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: 100*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movabsq $3038287259199220266, %rax # imm = 0x2A2A2A2A2A2A2A2A 101*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, 120(%rdi) 102*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, 112(%rdi) 103*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, 104(%rdi) 104*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, 96(%rdi) 105*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, 88(%rdi) 106*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, 80(%rdi) 107*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, 72(%rdi) 108*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, 64(%rdi) 109*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, 56(%rdi) 110*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, 48(%rdi) 111*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, 40(%rdi) 112*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, 32(%rdi) 113*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, 24(%rdi) 114*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, 16(%rdi) 115*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, 8(%rdi) 116*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rax, (%rdi) 117*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 118*9880d681SAndroid Build Coastguard Worker; 119*9880d681SAndroid Build Coastguard Worker; SSE2FAST-LABEL: memset_128_nonzero_bytes: 120*9880d681SAndroid Build Coastguard Worker; SSE2FAST: # BB#0: 121*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movaps {{.*#+}} xmm0 = [42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42] 122*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, 112(%rdi) 123*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, 96(%rdi) 124*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, 80(%rdi) 125*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, 64(%rdi) 126*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, 48(%rdi) 127*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, 32(%rdi) 128*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, 16(%rdi) 129*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, (%rdi) 130*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: retq 131*9880d681SAndroid Build Coastguard Worker; 132*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: memset_128_nonzero_bytes: 133*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: 134*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vmovaps {{.*#+}} ymm0 = [42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42] 135*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vmovups %ymm0, 96(%rdi) 136*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vmovups %ymm0, 64(%rdi) 137*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vmovups %ymm0, 32(%rdi) 138*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vmovups %ymm0, (%rdi) 139*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vzeroupper 140*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 141*9880d681SAndroid Build Coastguard Worker; 142*9880d681SAndroid Build Coastguard Worker %call = tail call i8* @__memset_chk(i8* %x, i32 42, i64 128, i64 -1) 143*9880d681SAndroid Build Coastguard Worker ret void 144*9880d681SAndroid Build Coastguard Worker} 145*9880d681SAndroid Build Coastguard Worker 146*9880d681SAndroid Build Coastguard Workerdefine void @memset_256_nonzero_bytes(i8* %x) { 147*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: memset_256_nonzero_bytes: 148*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: 149*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pushq %rax 150*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: .Ltmp0: 151*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: .cfi_def_cfa_offset 16 152*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movl $42, %esi 153*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movl $256, %edx # imm = 0x100 154*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: callq memset 155*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: popq %rax 156*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 157*9880d681SAndroid Build Coastguard Worker; 158*9880d681SAndroid Build Coastguard Worker; SSE2FAST-LABEL: memset_256_nonzero_bytes: 159*9880d681SAndroid Build Coastguard Worker; SSE2FAST: # BB#0: 160*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movaps {{.*#+}} xmm0 = [42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42] 161*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, 240(%rdi) 162*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, 224(%rdi) 163*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, 208(%rdi) 164*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, 192(%rdi) 165*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, 176(%rdi) 166*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, 160(%rdi) 167*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, 144(%rdi) 168*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, 128(%rdi) 169*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, 112(%rdi) 170*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, 96(%rdi) 171*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, 80(%rdi) 172*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, 64(%rdi) 173*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, 48(%rdi) 174*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, 32(%rdi) 175*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, 16(%rdi) 176*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movups %xmm0, (%rdi) 177*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: retq 178*9880d681SAndroid Build Coastguard Worker; 179*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: memset_256_nonzero_bytes: 180*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: 181*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vmovaps {{.*#+}} ymm0 = [42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42] 182*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vmovups %ymm0, 224(%rdi) 183*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vmovups %ymm0, 192(%rdi) 184*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vmovups %ymm0, 160(%rdi) 185*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vmovups %ymm0, 128(%rdi) 186*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vmovups %ymm0, 96(%rdi) 187*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vmovups %ymm0, 64(%rdi) 188*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vmovups %ymm0, 32(%rdi) 189*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vmovups %ymm0, (%rdi) 190*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vzeroupper 191*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 192*9880d681SAndroid Build Coastguard Worker; 193*9880d681SAndroid Build Coastguard Worker %call = tail call i8* @__memset_chk(i8* %x, i32 42, i64 256, i64 -1) 194*9880d681SAndroid Build Coastguard Worker ret void 195*9880d681SAndroid Build Coastguard Worker} 196*9880d681SAndroid Build Coastguard Worker 197*9880d681SAndroid Build Coastguard Workerdeclare i8* @__memset_chk(i8*, i32, i64, i64) 198*9880d681SAndroid Build Coastguard Worker 199*9880d681SAndroid Build Coastguard Worker; Repeat with a non-constant value for the stores. 200*9880d681SAndroid Build Coastguard Worker 201*9880d681SAndroid Build Coastguard Workerdefine void @memset_16_nonconst_bytes(i8* %x, i8 %c) { 202*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: memset_16_nonconst_bytes: 203*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: 204*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movzbl %sil, %eax 205*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movabsq $72340172838076673, %rcx # imm = 0x101010101010101 206*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: imulq %rax, %rcx 207*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, 8(%rdi) 208*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, (%rdi) 209*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 210*9880d681SAndroid Build Coastguard Worker; 211*9880d681SAndroid Build Coastguard Worker; SSE2FAST-LABEL: memset_16_nonconst_bytes: 212*9880d681SAndroid Build Coastguard Worker; SSE2FAST: # BB#0: 213*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movd %esi, %xmm0 214*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7] 215*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,0,0,0,4,5,6,7] 216*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1] 217*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, (%rdi) 218*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: retq 219*9880d681SAndroid Build Coastguard Worker; 220*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: memset_16_nonconst_bytes: 221*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: 222*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovd %esi, %xmm0 223*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm1, %xmm1, %xmm1 224*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpshufb %xmm1, %xmm0, %xmm0 225*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovdqu %xmm0, (%rdi) 226*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 227*9880d681SAndroid Build Coastguard Worker; 228*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: memset_16_nonconst_bytes: 229*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: 230*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovd %esi, %xmm0 231*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpbroadcastb %xmm0, %xmm0 232*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovdqu %xmm0, (%rdi) 233*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 234*9880d681SAndroid Build Coastguard Worker; 235*9880d681SAndroid Build Coastguard Worker tail call void @llvm.memset.p0i8.i64(i8* %x, i8 %c, i64 16, i32 1, i1 false) 236*9880d681SAndroid Build Coastguard Worker ret void 237*9880d681SAndroid Build Coastguard Worker} 238*9880d681SAndroid Build Coastguard Worker 239*9880d681SAndroid Build Coastguard Workerdefine void @memset_32_nonconst_bytes(i8* %x, i8 %c) { 240*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: memset_32_nonconst_bytes: 241*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: 242*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movzbl %sil, %eax 243*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movabsq $72340172838076673, %rcx # imm = 0x101010101010101 244*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: imulq %rax, %rcx 245*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, 24(%rdi) 246*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, 16(%rdi) 247*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, 8(%rdi) 248*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, (%rdi) 249*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 250*9880d681SAndroid Build Coastguard Worker; 251*9880d681SAndroid Build Coastguard Worker; SSE2FAST-LABEL: memset_32_nonconst_bytes: 252*9880d681SAndroid Build Coastguard Worker; SSE2FAST: # BB#0: 253*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movd %esi, %xmm0 254*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7] 255*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,0,0,0,4,5,6,7] 256*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1] 257*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, 16(%rdi) 258*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, (%rdi) 259*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: retq 260*9880d681SAndroid Build Coastguard Worker; 261*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: memset_32_nonconst_bytes: 262*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: 263*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovd %esi, %xmm0 264*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm1, %xmm1, %xmm1 265*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpshufb %xmm1, %xmm0, %xmm0 266*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0 267*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovups %ymm0, (%rdi) 268*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vzeroupper 269*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 270*9880d681SAndroid Build Coastguard Worker; 271*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: memset_32_nonconst_bytes: 272*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: 273*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovd %esi, %xmm0 274*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpbroadcastb %xmm0, %ymm0 275*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovdqu %ymm0, (%rdi) 276*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vzeroupper 277*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 278*9880d681SAndroid Build Coastguard Worker; 279*9880d681SAndroid Build Coastguard Worker tail call void @llvm.memset.p0i8.i64(i8* %x, i8 %c, i64 32, i32 1, i1 false) 280*9880d681SAndroid Build Coastguard Worker ret void 281*9880d681SAndroid Build Coastguard Worker} 282*9880d681SAndroid Build Coastguard Worker 283*9880d681SAndroid Build Coastguard Workerdefine void @memset_64_nonconst_bytes(i8* %x, i8 %c) { 284*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: memset_64_nonconst_bytes: 285*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: 286*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movzbl %sil, %eax 287*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movabsq $72340172838076673, %rcx # imm = 0x101010101010101 288*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: imulq %rax, %rcx 289*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, 56(%rdi) 290*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, 48(%rdi) 291*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, 40(%rdi) 292*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, 32(%rdi) 293*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, 24(%rdi) 294*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, 16(%rdi) 295*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, 8(%rdi) 296*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, (%rdi) 297*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 298*9880d681SAndroid Build Coastguard Worker; 299*9880d681SAndroid Build Coastguard Worker; SSE2FAST-LABEL: memset_64_nonconst_bytes: 300*9880d681SAndroid Build Coastguard Worker; SSE2FAST: # BB#0: 301*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movd %esi, %xmm0 302*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7] 303*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,0,0,0,4,5,6,7] 304*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1] 305*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, 48(%rdi) 306*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, 32(%rdi) 307*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, 16(%rdi) 308*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, (%rdi) 309*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: retq 310*9880d681SAndroid Build Coastguard Worker; 311*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: memset_64_nonconst_bytes: 312*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: 313*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovd %esi, %xmm0 314*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm1, %xmm1, %xmm1 315*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpshufb %xmm1, %xmm0, %xmm0 316*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0 317*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovups %ymm0, 32(%rdi) 318*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovups %ymm0, (%rdi) 319*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vzeroupper 320*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 321*9880d681SAndroid Build Coastguard Worker; 322*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: memset_64_nonconst_bytes: 323*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: 324*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovd %esi, %xmm0 325*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpbroadcastb %xmm0, %ymm0 326*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovdqu %ymm0, 32(%rdi) 327*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovdqu %ymm0, (%rdi) 328*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vzeroupper 329*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 330*9880d681SAndroid Build Coastguard Worker; 331*9880d681SAndroid Build Coastguard Worker tail call void @llvm.memset.p0i8.i64(i8* %x, i8 %c, i64 64, i32 1, i1 false) 332*9880d681SAndroid Build Coastguard Worker ret void 333*9880d681SAndroid Build Coastguard Worker} 334*9880d681SAndroid Build Coastguard Worker 335*9880d681SAndroid Build Coastguard Workerdefine void @memset_128_nonconst_bytes(i8* %x, i8 %c) { 336*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: memset_128_nonconst_bytes: 337*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: 338*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movzbl %sil, %eax 339*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movabsq $72340172838076673, %rcx # imm = 0x101010101010101 340*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: imulq %rax, %rcx 341*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, 120(%rdi) 342*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, 112(%rdi) 343*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, 104(%rdi) 344*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, 96(%rdi) 345*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, 88(%rdi) 346*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, 80(%rdi) 347*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, 72(%rdi) 348*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, 64(%rdi) 349*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, 56(%rdi) 350*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, 48(%rdi) 351*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, 40(%rdi) 352*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, 32(%rdi) 353*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, 24(%rdi) 354*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, 16(%rdi) 355*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, 8(%rdi) 356*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movq %rcx, (%rdi) 357*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 358*9880d681SAndroid Build Coastguard Worker; 359*9880d681SAndroid Build Coastguard Worker; SSE2FAST-LABEL: memset_128_nonconst_bytes: 360*9880d681SAndroid Build Coastguard Worker; SSE2FAST: # BB#0: 361*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movd %esi, %xmm0 362*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7] 363*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,0,0,0,4,5,6,7] 364*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1] 365*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, 112(%rdi) 366*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, 96(%rdi) 367*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, 80(%rdi) 368*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, 64(%rdi) 369*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, 48(%rdi) 370*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, 32(%rdi) 371*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, 16(%rdi) 372*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, (%rdi) 373*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: retq 374*9880d681SAndroid Build Coastguard Worker; 375*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: memset_128_nonconst_bytes: 376*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: 377*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovd %esi, %xmm0 378*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm1, %xmm1, %xmm1 379*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpshufb %xmm1, %xmm0, %xmm0 380*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0 381*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovups %ymm0, 96(%rdi) 382*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovups %ymm0, 64(%rdi) 383*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovups %ymm0, 32(%rdi) 384*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovups %ymm0, (%rdi) 385*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vzeroupper 386*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 387*9880d681SAndroid Build Coastguard Worker; 388*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: memset_128_nonconst_bytes: 389*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: 390*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovd %esi, %xmm0 391*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpbroadcastb %xmm0, %ymm0 392*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovdqu %ymm0, 96(%rdi) 393*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovdqu %ymm0, 64(%rdi) 394*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovdqu %ymm0, 32(%rdi) 395*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovdqu %ymm0, (%rdi) 396*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vzeroupper 397*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 398*9880d681SAndroid Build Coastguard Worker; 399*9880d681SAndroid Build Coastguard Worker tail call void @llvm.memset.p0i8.i64(i8* %x, i8 %c, i64 128, i32 1, i1 false) 400*9880d681SAndroid Build Coastguard Worker ret void 401*9880d681SAndroid Build Coastguard Worker} 402*9880d681SAndroid Build Coastguard Worker 403*9880d681SAndroid Build Coastguard Workerdefine void @memset_256_nonconst_bytes(i8* %x, i8 %c) { 404*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: memset_256_nonconst_bytes: 405*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: 406*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: movl $256, %edx # imm = 0x100 407*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: jmp memset # TAILCALL 408*9880d681SAndroid Build Coastguard Worker; 409*9880d681SAndroid Build Coastguard Worker; SSE2FAST-LABEL: memset_256_nonconst_bytes: 410*9880d681SAndroid Build Coastguard Worker; SSE2FAST: # BB#0: 411*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movd %esi, %xmm0 412*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7] 413*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,0,0,0,4,5,6,7] 414*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1] 415*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, 240(%rdi) 416*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, 224(%rdi) 417*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, 208(%rdi) 418*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, 192(%rdi) 419*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, 176(%rdi) 420*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, 160(%rdi) 421*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, 144(%rdi) 422*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, 128(%rdi) 423*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, 112(%rdi) 424*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, 96(%rdi) 425*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, 80(%rdi) 426*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, 64(%rdi) 427*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, 48(%rdi) 428*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, 32(%rdi) 429*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, 16(%rdi) 430*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: movdqu %xmm0, (%rdi) 431*9880d681SAndroid Build Coastguard Worker; SSE2FAST-NEXT: retq 432*9880d681SAndroid Build Coastguard Worker; 433*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: memset_256_nonconst_bytes: 434*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: 435*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovd %esi, %xmm0 436*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm1, %xmm1, %xmm1 437*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpshufb %xmm1, %xmm0, %xmm0 438*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0 439*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovups %ymm0, 224(%rdi) 440*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovups %ymm0, 192(%rdi) 441*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovups %ymm0, 160(%rdi) 442*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovups %ymm0, 128(%rdi) 443*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovups %ymm0, 96(%rdi) 444*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovups %ymm0, 64(%rdi) 445*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovups %ymm0, 32(%rdi) 446*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovups %ymm0, (%rdi) 447*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vzeroupper 448*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 449*9880d681SAndroid Build Coastguard Worker; 450*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: memset_256_nonconst_bytes: 451*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: 452*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovd %esi, %xmm0 453*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpbroadcastb %xmm0, %ymm0 454*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovdqu %ymm0, 224(%rdi) 455*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovdqu %ymm0, 192(%rdi) 456*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovdqu %ymm0, 160(%rdi) 457*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovdqu %ymm0, 128(%rdi) 458*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovdqu %ymm0, 96(%rdi) 459*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovdqu %ymm0, 64(%rdi) 460*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovdqu %ymm0, 32(%rdi) 461*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovdqu %ymm0, (%rdi) 462*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vzeroupper 463*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 464*9880d681SAndroid Build Coastguard Worker; 465*9880d681SAndroid Build Coastguard Worker tail call void @llvm.memset.p0i8.i64(i8* %x, i8 %c, i64 256, i32 1, i1 false) 466*9880d681SAndroid Build Coastguard Worker ret void 467*9880d681SAndroid Build Coastguard Worker} 468*9880d681SAndroid Build Coastguard Worker 469*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) #1 470*9880d681SAndroid Build Coastguard Worker 471