Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / WebAssembly / pr59626.ll
blob6ffdead28129ef7eccd1a7155d6d9b074883713c
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=wasm32-- -mattr=+simd128 | FileCheck --check-prefix=CHECK-32 %s
3 ; RUN: llc < %s -mtriple=wasm64-- -mattr=+simd128 | FileCheck --check-prefix=CHECK-64 %s
5 define i8 @f(ptr %0, ptr %1) {
6 ; CHECK-32-LABEL: f:
7 ; CHECK-32:         .functype f (i32, i32) -> (i32)
8 ; CHECK-32-NEXT:  # %bb.0: # %BB
9 ; CHECK-32-NEXT:    local.get 0
10 ; CHECK-32-NEXT:    i32.const 0
11 ; CHECK-32-NEXT:    i32.store8 2
12 ; CHECK-32-NEXT:    local.get 0
13 ; CHECK-32-NEXT:    i32.const 0
14 ; CHECK-32-NEXT:    i32.store16 0
15 ; CHECK-32-NEXT:    local.get 1
16 ; CHECK-32-NEXT:    i32.const 5
17 ; CHECK-32-NEXT:    i32.store8 2
18 ; CHECK-32-NEXT:    local.get 1
19 ; CHECK-32-NEXT:    i32.const 769
20 ; CHECK-32-NEXT:    i32.store16 0
21 ; CHECK-32-NEXT:    i32.const 1
22 ; CHECK-32-NEXT:    # fallthrough-return
24 ; CHECK-64-LABEL: f:
25 ; CHECK-64:         .functype f (i64, i64) -> (i32)
26 ; CHECK-64-NEXT:  # %bb.0: # %BB
27 ; CHECK-64-NEXT:    local.get 0
28 ; CHECK-64-NEXT:    i32.const 0
29 ; CHECK-64-NEXT:    i32.store8 2
30 ; CHECK-64-NEXT:    local.get 0
31 ; CHECK-64-NEXT:    i32.const 0
32 ; CHECK-64-NEXT:    i32.store16 0
33 ; CHECK-64-NEXT:    local.get 1
34 ; CHECK-64-NEXT:    i32.const 5
35 ; CHECK-64-NEXT:    i32.store8 2
36 ; CHECK-64-NEXT:    local.get 1
37 ; CHECK-64-NEXT:    i32.const 769
38 ; CHECK-64-NEXT:    i32.store16 0
39 ; CHECK-64-NEXT:    i32.const 1
40 ; CHECK-64-NEXT:    # fallthrough-return
41 BB:
42   store <3 x i8> zeroinitializer, ptr %0
43   %S = shufflevector <3 x i128> zeroinitializer, <3 x i128> <i128 0, i128 1, i128 2>, <3 x i32> undef
44   %C = icmp ule <3 x i128> %S, zeroinitializer
45   %C1 = zext <3 x i1> %C to <3 x i8>
46   %E = extractelement <3 x i8> %C1, i32 0
47   %B = sdiv <3 x i8> <i8 1, i8 3, i8 5>, %C1
48   store <3 x i8> %B, ptr %1
49   ret i8 %E