| ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 4 |
| ; RUN: opt -S -passes=interleaved-load-combine < %s | FileCheck %s |
| |
| target triple = "aarch64-unknown-windows-gnu" |
| |
| ; Make sure we don't crash on loads of vectors of non-byte-sized types. |
| define <4 x i1> @test(ptr %p) { |
| ; CHECK-LABEL: define <4 x i1> @test( |
| ; CHECK-SAME: ptr [[P:%.*]]) { |
| ; CHECK-NEXT: entry: |
| ; CHECK-NEXT: [[LOAD:%.*]] = load <2 x i1>, ptr [[P]], align 1 |
| ; CHECK-NEXT: [[SHUF:%.*]] = shufflevector <2 x i1> [[LOAD]], <2 x i1> zeroinitializer, <4 x i32> <i32 0, i32 1, i32 2, i32 2> |
| ; CHECK-NEXT: ret <4 x i1> [[SHUF]] |
| ; |
| entry: |
| %load = load <2 x i1>, ptr %p, align 1 |
| %shuf = shufflevector <2 x i1> %load, <2 x i1> zeroinitializer, <4 x i32> <i32 0, i32 1, i32 2, i32 2> |
| ret <4 x i1> %shuf |
| } |