xref: /aosp_15_r20/external/llvm/test/CodeGen/Thumb2/2013-03-06-vector-sext-operand-scalarize.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=thumbv7-apple-darwin | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker; Testing that these don't crash/assert. The loop vectorizer can end up
4*9880d681SAndroid Build Coastguard Worker; with odd constructs like this. The code actually generated is incidental.
5*9880d681SAndroid Build Coastguard Workerdefine <1 x i64> @test_zext(i32 %a) nounwind {
6*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_zext:
7*9880d681SAndroid Build Coastguard Worker  %Cmp = icmp uge i32 %a, 42
8*9880d681SAndroid Build Coastguard Worker  %vec = insertelement <1 x i1> zeroinitializer, i1 %Cmp, i32 0
9*9880d681SAndroid Build Coastguard Worker  %Se = zext <1 x i1> %vec to <1 x i64>
10*9880d681SAndroid Build Coastguard Worker  ret <1 x i64> %Se
11*9880d681SAndroid Build Coastguard Worker}
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard Workerdefine <1 x i64> @test_sext(i32 %a) nounwind {
14*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_sext:
15*9880d681SAndroid Build Coastguard Worker  %Cmp = icmp uge i32 %a, 42
16*9880d681SAndroid Build Coastguard Worker  %vec = insertelement <1 x i1> zeroinitializer, i1 %Cmp, i32 0
17*9880d681SAndroid Build Coastguard Worker  %Se = sext <1 x i1> %vec to <1 x i64>
18*9880d681SAndroid Build Coastguard Worker  ret <1 x i64> %Se
19*9880d681SAndroid Build Coastguard Worker}
20