1 ; This test makes sure that these instructions are properly eliminated.
3 ; RUN: opt < %s -instcombine -S | FileCheck %s
7 define i41 @test1(i1 %C) {
8 %V = select i1 %C, i41 1, i41 0 ; V = C
12 define i999 @test2(i1 %C) {
13 %V = select i1 %C, i999 0, i999 1 ; V = C
17 define i41 @test3(i41 %X) {
18 ;; (x <s 0) ? -1 : 0 -> ashr x, 31
19 %t = icmp slt i41 %X, 0
20 %V = select i1 %t, i41 -1, i41 0
24 define i1023 @test4(i1023 %X) {
25 ;; (x <s 0) ? -1 : 0 -> ashr x, 31
26 %t = icmp slt i1023 %X, 0
27 %V = select i1 %t, i1023 -1, i1023 0
31 define i41 @test5(i41 %X) {
32 ;; ((X & 27) ? 27 : 0)
34 %t = icmp ne i41 %Y, 0
35 %V = select i1 %t, i41 32, i41 0
39 define i1023 @test6(i1023 %X) {
40 ;; ((X & 27) ? 27 : 0)
42 %t = icmp ne i1023 %Y, 0
43 %V = select i1 %t, i1023 64, i1023 0