; NOTE: Assertions have been autogenerated by utils/update_llubi_test_checks.py UTC_ARGS: --version 6 ; RUN: llubi --verbose < %s 2>&1 | FileCheck %s define void @main() { %insert = insertelement <4 x i32> poison, i32 42, i32 0 %splat = shufflevector <4 x i32> %insert, <4 x i32> poison, <4 x i32> zeroinitializer %extract = extractelement <4 x i32> %splat, i32 3 %insert_poison = insertelement <4 x i32> zeroinitializer, i32 42, i32 5 %extract_poison = extractelement <4 x i32> zeroinitializer, i32 5 %scalable_insert = insertelement poison, i32 42, i32 0 %scalable_splat = shufflevector %scalable_insert, poison, zeroinitializer %scalable_extract = extractelement %scalable_splat, i32 3 %insert_update = insertelement <4 x i32> , i32 1, i32 1 %shuffle_mixed = shufflevector <4 x i32> , <4 x i32> , <4 x i32> %shuffle_mismatch = shufflevector <4 x i32> , <4 x i32> , <3 x i32> ret void } ; CHECK: Entering function: main ; CHECK-NEXT: %insert = insertelement <4 x i32> poison, i32 42, i32 0 => { i32 42, poison, poison, poison } ; CHECK-NEXT: %splat = shufflevector <4 x i32> %insert, <4 x i32> poison, <4 x i32> zeroinitializer => { i32 42, i32 42, i32 42, i32 42 } ; CHECK-NEXT: %extract = extractelement <4 x i32> %splat, i32 3 => i32 42 ; CHECK-NEXT: %insert_poison = insertelement <4 x i32> zeroinitializer, i32 42, i32 5 => { poison, poison, poison, poison } ; CHECK-NEXT: %extract_poison = extractelement <4 x i32> zeroinitializer, i32 5 => poison ; CHECK-NEXT: %scalable_insert = insertelement poison, i32 42, i32 0 => { i32 42, poison, poison, poison, poison, poison, poison, poison, poison, poison, poison, poison, poison, poison, poison, poison } ; CHECK-NEXT: %scalable_splat = shufflevector %scalable_insert, poison, zeroinitializer => { i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42 } ; CHECK-NEXT: %scalable_extract = extractelement %scalable_splat, i32 3 => i32 42 ; CHECK-NEXT: %insert_update = insertelement <4 x i32> , i32 1, i32 1 => { i32 0, i32 1, i32 2, i32 3 } ; CHECK-NEXT: %shuffle_mixed = shufflevector <4 x i32> , <4 x i32> , <4 x i32> => { i32 7, poison, poison, i32 0 } ; CHECK-NEXT: %shuffle_mismatch = shufflevector <4 x i32> , <4 x i32> , <3 x i32> => { i32 7, poison, i32 3 } ; CHECK-NEXT: ret void ; CHECK-NEXT: Exiting function: main