; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 2 ; RUN: opt -passes=instcombine -S < %s | FileCheck %s define @load(ptr %x) { ; CHECK-LABEL: define @load ; CHECK-SAME: (ptr [[X:%.*]]) { ; CHECK-NEXT: [[A_ELT1:%.*]] = getelementptr inbounds [2 x ], ptr [[X]], i64 0, i64 1 ; CHECK-NEXT: [[A_UNPACK2:%.*]] = load , ptr [[A_ELT1]], align 16 ; CHECK-NEXT: ret [[A_UNPACK2]] ; %a = load [2 x ], ptr %x %b = extractvalue [2 x ] %a, 1 ret %b } define void @store(ptr %x, %y, %z) { ; CHECK-LABEL: define void @store ; CHECK-SAME: (ptr [[X:%.*]], [[Y:%.*]], [[Z:%.*]]) { ; CHECK-NEXT: store [[Y]], ptr [[X]], align 16 ; CHECK-NEXT: [[X_REPACK1:%.*]] = getelementptr inbounds [2 x ], ptr [[X]], i64 0, i64 1 ; CHECK-NEXT: store [[Z]], ptr [[X_REPACK1]], align 16 ; CHECK-NEXT: ret void ; %a = insertvalue [2 x ] poison, %y, 0 %b = insertvalue [2 x ] %a, %z, 1 store [2 x ] %b, ptr %x ret void }