xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/no-sse2-avg.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2*9880d681SAndroid Build Coastguard Worker; REQUIRES: asserts
3*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=-sse2 | FileCheck %s
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @PR27973() {
6*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: PR27973:
7*9880d681SAndroid Build Coastguard Worker; CHECK:       # BB#0:
8*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    movb $0, 15(%rdi)
9*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    movb $0, 14(%rdi)
10*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    movb $0, 13(%rdi)
11*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    movb $0, 12(%rdi)
12*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    movb $0, 11(%rdi)
13*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    movb $0, 10(%rdi)
14*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    movb $0, 9(%rdi)
15*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    movb $0, 8(%rdi)
16*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    movb $0, 7(%rdi)
17*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    movb $0, 6(%rdi)
18*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    movb $0, 5(%rdi)
19*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    movb $0, 4(%rdi)
20*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    movb $0, 3(%rdi)
21*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    movb $0, 2(%rdi)
22*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    movb $0, 1(%rdi)
23*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    movb $0, (%rdi)
24*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    movq %rdi, %rax
25*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    retq
26*9880d681SAndroid Build Coastguard Worker;
27*9880d681SAndroid Build Coastguard Worker  %t0 = zext <16 x i8> zeroinitializer to <16 x i32>
28*9880d681SAndroid Build Coastguard Worker  %t1 = add nuw nsw <16 x i32> %t0, <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
29*9880d681SAndroid Build Coastguard Worker  %t2 = lshr <16 x i32> %t1, <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
30*9880d681SAndroid Build Coastguard Worker  %t3 = trunc <16 x i32> %t2 to <16 x i8>
31*9880d681SAndroid Build Coastguard Worker  ret <16 x i8> %t3
32*9880d681SAndroid Build Coastguard Worker}
33