// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 6
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK

// Regression test for GH#189260: Clang crashed with an assertion failure
// in InsertElementInst when storing to an element of an ext_vector_type
// with bool element type.

typedef __attribute__((ext_vector_type(32))) bool v32bool;
v32bool v32b = {};


// CHECK-LABEL: define dso_local void @_Z5test1v(
// CHECK-SAME: ) #[[ATTR0:[0-9]+]] {
// CHECK-NEXT:  [[ENTRY:.*:]]
// CHECK-NEXT:    [[TMP0:%.*]] = load i32, ptr @v32b, align 4
// CHECK-NEXT:    [[TMP1:%.*]] = bitcast i32 [[TMP0]] to <32 x i1>
// CHECK-NEXT:    [[VECINS:%.*]] = insertelement <32 x i1> [[TMP1]], i1 true, i32 0
// CHECK-NEXT:    [[TMP2:%.*]] = bitcast <32 x i1> [[VECINS]] to i32
// CHECK-NEXT:    store i32 [[TMP2]], ptr @v32b, align 4
// CHECK-NEXT:    ret void
//
void test1() {
    v32b[0] = true;
}

// CHECK-LABEL: define dso_local void @_Z5test2v(
// CHECK-SAME: ) #[[ATTR0]] {
// CHECK-NEXT:  [[ENTRY:.*:]]
// CHECK-NEXT:    [[TMP0:%.*]] = load i32, ptr @v32b, align 4
// CHECK-NEXT:    [[TMP1:%.*]] = bitcast i32 [[TMP0]] to <32 x i1>
// CHECK-NEXT:    [[VECINS:%.*]] = insertelement <32 x i1> [[TMP1]], i1 true, i32 31
// CHECK-NEXT:    [[TMP2:%.*]] = bitcast <32 x i1> [[VECINS]] to i32
// CHECK-NEXT:    store i32 [[TMP2]], ptr @v32b, align 4
// CHECK-NEXT:    ret void
//
void test2() {
    v32b[31] = true;
}
