| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py | |
| ; RUN: llc -mtriple=x86_64-unknown-linux-gnu < %s | FileCheck %s | |
| ; After legalization, this could be: "i8 truncate (i64 AssertZext X, Type: i9)" | |
| ; The AssertZext does not add information, so it should be eliminated, | |
| ; but that must not trigger a compile-time assert. | |
| define void @test(ptr %p) { | |
| ; CHECK-LABEL: test: | |
| ; CHECK: # %bb.0: | |
| ; CHECK-NEXT: movl $256, %eax # imm = 0x100 | |
| ; CHECK-NEXT: movq %rax, (%rdi) | |
| ; CHECK-NEXT: retq | |
| %sel = select i1 true, i64 256, i64 0 | |
| br label %bb2 | |
| bb2: | |
| store i64 %sel, ptr %p, align 4 | |
| %load = load <2 x i1>, ptr %p, align 1 | |
| br label %bb3 | |
| bb3: | |
| %use = add <2 x i1> %load, zeroinitializer | |
| ret void | |
| } |