| ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5 |
| ; RUN: opt < %s -passes=instcombine -S | FileCheck %s |
| |
| ; Make sure that we don't crash when optimizing shufflevector of <N x ptr> with <1 x i32> mask followed by bitcast of <1 x ptr> to ptr |
| |
| define ptr @test(<3 x ptr> %vptr) { |
| ; CHECK-LABEL: define ptr @test( |
| ; CHECK-SAME: <3 x ptr> [[VPTR:%.*]]) { |
| ; CHECK-NEXT: [[SV_EXTRACT:%.*]] = extractelement <3 x ptr> [[VPTR]], i64 0 |
| ; CHECK-NEXT: ret ptr [[SV_EXTRACT]] |
| ; |
| %SV = shufflevector <3 x ptr> %vptr, <3 x ptr> zeroinitializer, <1 x i32> zeroinitializer |
| %BC = bitcast <1 x ptr> %SV to ptr |
| ret ptr %BC |
| } |