1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2 ; RUN: llc < %s -mtriple=i386-unknown-unknown -mattr=sse4.2 | FileCheck %s --check-prefix=FAST 3 ; RUN: llc < %s -mtriple=i386-unknown-unknown -mattr=ssse3 | FileCheck %s --check-prefix=SLOW_32 4 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=ssse3 | FileCheck %s --check-prefix=SLOW_64 5 6 define void @bork() nounwind { 7 ; FAST-LABEL: bork: 8 ; FAST: # %bb.0: 9 ; FAST-NEXT: xorps %xmm0, %xmm0 10 ; FAST-NEXT: movups %xmm0, 64 11 ; FAST-NEXT: movups %xmm0, 48 12 ; FAST-NEXT: movups %xmm0, 32 13 ; FAST-NEXT: movups %xmm0, 16 14 ; FAST-NEXT: movups %xmm0, 0 15 ; FAST-NEXT: retl 16 ; 17 ; SLOW_32-LABEL: bork: 18 ; SLOW_32: # %bb.0: 19 ; SLOW_32-NEXT: movl $0, 4 20 ; SLOW_32-NEXT: movl $0, 0 21 ; SLOW_32-NEXT: movl $0, 12 22 ; SLOW_32-NEXT: movl $0, 8 23 ; SLOW_32-NEXT: movl $0, 20 24 ; SLOW_32-NEXT: movl $0, 16 25 ; SLOW_32-NEXT: movl $0, 28 26 ; SLOW_32-NEXT: movl $0, 24 27 ; SLOW_32-NEXT: movl $0, 36 28 ; SLOW_32-NEXT: movl $0, 32 29 ; SLOW_32-NEXT: movl $0, 44 30 ; SLOW_32-NEXT: movl $0, 40 31 ; SLOW_32-NEXT: movl $0, 52 32 ; SLOW_32-NEXT: movl $0, 48 33 ; SLOW_32-NEXT: movl $0, 60 34 ; SLOW_32-NEXT: movl $0, 56 35 ; SLOW_32-NEXT: movl $0, 68 36 ; SLOW_32-NEXT: movl $0, 64 37 ; SLOW_32-NEXT: movl $0, 76 38 ; SLOW_32-NEXT: movl $0, 72 39 ; SLOW_32-NEXT: retl 40 ; 41 ; SLOW_64-LABEL: bork: 42 ; SLOW_64: # %bb.0: 43 ; SLOW_64-NEXT: movq $0, 72 44 ; SLOW_64-NEXT: movq $0, 64 45 ; SLOW_64-NEXT: movq $0, 56 46 ; SLOW_64-NEXT: movq $0, 48 47 ; SLOW_64-NEXT: movq $0, 40 48 ; SLOW_64-NEXT: movq $0, 32 49 ; SLOW_64-NEXT: movq $0, 24 50 ; SLOW_64-NEXT: movq $0, 16 51 ; SLOW_64-NEXT: movq $0, 8 52 ; SLOW_64-NEXT: movq $0, 0 53 ; SLOW_64-NEXT: retq 54 call void @llvm.memset.p0i8.i64(i8* align 4 null, i8 0, i64 80, i1 false) 55 ret void 56 } 57 58 declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i1) nounwind 59 60