xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/2010-11-18-SelectOfExtload.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=x86 -mattr=+cmov | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker; Both values were being zero extended.
3*9880d681SAndroid Build Coastguard Worker@u = external global i8
4*9880d681SAndroid Build Coastguard Worker@s = external global i8
5*9880d681SAndroid Build Coastguard Workerdefine i32 @foo(i1 %cond) {
6*9880d681SAndroid Build Coastguard Worker; CHECK: @foo
7*9880d681SAndroid Build Coastguard Worker  %u_base = load i8, i8* @u
8*9880d681SAndroid Build Coastguard Worker  %u_val = zext i8 %u_base to i32
9*9880d681SAndroid Build Coastguard Worker; CHECK: movzbl
10*9880d681SAndroid Build Coastguard Worker; CHECK: movsbl
11*9880d681SAndroid Build Coastguard Worker  %s_base = load i8, i8* @s
12*9880d681SAndroid Build Coastguard Worker  %s_val = sext i8 %s_base to i32
13*9880d681SAndroid Build Coastguard Worker  %val = select i1 %cond, i32 %u_val, i32 %s_val
14*9880d681SAndroid Build Coastguard Worker  ret i32 %val
15*9880d681SAndroid Build Coastguard Worker}
16