xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/2009-08-19-LoadNarrowingMiscompile.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=x86 -mtriple=i386-pc-linux | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker@a = external global i96, align 4
4*9880d681SAndroid Build Coastguard Worker@b = external global i64, align 8
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Workerdefine void @c() nounwind {
7*9880d681SAndroid Build Coastguard Worker; CHECK: movl a+8, %eax
8*9880d681SAndroid Build Coastguard Worker  %srcval1 = load i96, i96* @a, align 4
9*9880d681SAndroid Build Coastguard Worker  %sroa.store.elt2 = lshr i96 %srcval1, 64
10*9880d681SAndroid Build Coastguard Worker  %tmp = trunc i96 %sroa.store.elt2 to i64
11*9880d681SAndroid Build Coastguard Worker; CHECK: movl %eax, b
12*9880d681SAndroid Build Coastguard Worker; CHECK: movl $0, b+4
13*9880d681SAndroid Build Coastguard Worker  store i64 %tmp, i64* @b, align 8
14*9880d681SAndroid Build Coastguard Worker  ret void
15*9880d681SAndroid Build Coastguard Worker}
16